mirror of https://github.com/easzlab/kubeasz.git
更新增加master节点的步骤和文档
parent
42460646d4
commit
e4685e5fa4
|
@ -0,0 +1,14 @@
|
||||||
|
# 集群节点的公共配置任务
|
||||||
|
- hosts:
|
||||||
|
- kube-master
|
||||||
|
roles:
|
||||||
|
- prepare
|
||||||
|
|
||||||
|
# [可选]多master部署时的负载均衡配置
|
||||||
|
- hosts: lb
|
||||||
|
roles:
|
||||||
|
- lb
|
||||||
|
|
||||||
|
- hosts: kube-master
|
||||||
|
roles:
|
||||||
|
- kube-master
|
|
@ -130,6 +130,7 @@
|
||||||
- name: 清理证书目录和文件
|
- name: 清理证书目录和文件
|
||||||
file: name={{ item }} state=absent
|
file: name={{ item }} state=absent
|
||||||
with_items:
|
with_items:
|
||||||
|
- "/etc/kubernetes/"
|
||||||
- "{{ ca_dir }}"
|
- "{{ ca_dir }}"
|
||||||
- /root/.kube
|
- "/root/.kube/"
|
||||||
- /etc/docker
|
- "/etc/docker/"
|
||||||
|
|
|
@ -0,0 +1,60 @@
|
||||||
|
## 增加 kube-master 节点
|
||||||
|
|
||||||
|
注意:目前仅支持按照本项目`多主模式`(hosts.m-masters.example)部署的`k8s`集群增加`master`节点
|
||||||
|
|
||||||
|
新增`kube-master`节点大致流程为:
|
||||||
|
- 节点预处理 prepare
|
||||||
|
- 重新配置LB节点的 haproxy服务
|
||||||
|
- 安装 master 节点服务
|
||||||
|
|
||||||
|
### 操作步骤
|
||||||
|
|
||||||
|
按照本项目说明,首先确保deploy节点能够ssh免密码登陆新增节点,然后在**deploy**节点执行三步:
|
||||||
|
|
||||||
|
- 修改ansible hosts 文件,在 [kube-master] 组添加新增的节点;在[lb] 组添加新增master 节点,举例如下:
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
[kube-master]
|
||||||
|
192.168.1.1 NODE_IP="192.168.1.1"
|
||||||
|
192.168.1.2 NODE_IP="192.168.1.2"
|
||||||
|
192.168.1.5 NODE_IP="192.168.1.5" # 新增 master节点
|
||||||
|
|
||||||
|
[lb]
|
||||||
|
192.168.1.1 LB_IF="ens3" LB_ROLE=backup
|
||||||
|
192.168.1.4 LB_IF="ens3" LB_ROLE=master
|
||||||
|
[lb:vars]
|
||||||
|
master1="192.168.1.1:6443"
|
||||||
|
master2="192.168.1.2:6443"
|
||||||
|
master3="192.168.1.5:6443" # 新增 master节点
|
||||||
|
```
|
||||||
|
- 修改roles/lb/templates/haproxy.cfg.j2 文件,增加新增的master节点,举例如下:
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
listen kube-master
|
||||||
|
bind 0.0.0.0:{{ MASTER_PORT }}
|
||||||
|
mode tcp
|
||||||
|
option tcplog
|
||||||
|
balance source
|
||||||
|
server s1 {{ master1 }} check inter 10000 fall 2 rise 2 weight 1
|
||||||
|
server s2 {{ master2 }} check inter 10000 fall 2 rise 2 weight 1
|
||||||
|
server s3 {{ master3 }} check inter 10000 fall 2 rise 2 weight 1
|
||||||
|
```
|
||||||
|
|
||||||
|
- 执行安装脚本
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
$ cd /etc/ansible && ansible-playbook 20.addmaster.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
### 验证
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
# 在新节点master 服务状态
|
||||||
|
$ systemctl status kube-apiserver
|
||||||
|
$ systemctl status kube-controller-manager
|
||||||
|
$ systemctl status kube-scheduler
|
||||||
|
|
||||||
|
# 查看新master的服务日志
|
||||||
|
$ journalctl -u kube-apiserver -f
|
||||||
|
|
||||||
|
```
|
|
@ -1,18 +1,18 @@
|
||||||
## 增加 kube-node 节点
|
## 增加 kube-node 节点
|
||||||
|
|
||||||
新增`kube-node`节点大致流程为:
|
新增`kube-node`节点大致流程为:
|
||||||
- 1. 节点预处理 prepare
|
- 节点预处理 prepare
|
||||||
- 2. 安装 kubectl (可选)
|
- 安装 kubectl (可选)
|
||||||
- 3. 安装 docker
|
- 安装 docker
|
||||||
- 4. 安装 kubelet 和 kube-proxy
|
- 安装 kubelet 和 kube-proxy
|
||||||
- 5. 准备网络插件 calico 或 flannel
|
- 准备网络插件 calico 或 flannel
|
||||||
- 6. 批准新节点 kubectl certificate approve
|
- 批准新节点 kubectl certificate approve
|
||||||
|
|
||||||
### 操作步骤
|
### 操作步骤
|
||||||
|
|
||||||
按照本项目说明,首先确保deploy节点能够ssh免密码登陆新增节点,然后在**deploy**节点执行两步:
|
按照本项目说明,首先确保deploy节点能够ssh免密码登陆新增节点,然后在**deploy**节点执行两步:
|
||||||
|
|
||||||
- 1. 修改ansible hosts 文件,在 [new-node] 组编辑需要新增的节点,例如:
|
- 修改ansible hosts 文件,在 [new-node] 组编辑需要新增的节点,例如:
|
||||||
|
|
||||||
``` bash
|
``` bash
|
||||||
...
|
...
|
||||||
|
@ -21,7 +21,7 @@
|
||||||
192.168.1.6 NODE_ID=node6 NODE_IP="192.168.1.6"
|
192.168.1.6 NODE_ID=node6 NODE_IP="192.168.1.6"
|
||||||
...
|
...
|
||||||
```
|
```
|
||||||
- 2. 执行安装脚本
|
- 执行安装脚本
|
||||||
|
|
||||||
``` bash
|
``` bash
|
||||||
$ cd /etc/ansible && ansible-playbook 20.addnode.yml
|
$ cd /etc/ansible && ansible-playbook 20.addnode.yml
|
||||||
|
|
|
@ -8,10 +8,20 @@
|
||||||
- kube-proxy
|
- kube-proxy
|
||||||
- kubelet
|
- kubelet
|
||||||
|
|
||||||
|
# 注册变量result,根据result结果判断是否已经生成过 kubernetes证书
|
||||||
|
# result|failed 说明没有生成过证书,下一步生成证书
|
||||||
|
# result|succeeded 说明已经有kubernetes证书,使用原证书,跳过生成证书步骤
|
||||||
|
- name: 注册变量result
|
||||||
|
command: ls /etc/kubernetes/ssl/kubernetes.pem
|
||||||
|
register: result
|
||||||
|
ignore_errors: True
|
||||||
|
|
||||||
- name: 创建 kubernetes 证书签名请求
|
- name: 创建 kubernetes 证书签名请求
|
||||||
template: src=kubernetes-csr.json.j2 dest={{ ca_dir }}/kubernetes-csr.json
|
template: src=kubernetes-csr.json.j2 dest={{ ca_dir }}/kubernetes-csr.json
|
||||||
|
when: result|failed
|
||||||
|
|
||||||
- name: 创建 kubernetes 证书和私钥
|
- name: 创建 kubernetes 证书和私钥
|
||||||
|
when: result|failed
|
||||||
shell: "cd {{ ca_dir }} && {{ bin_dir }}/cfssl gencert \
|
shell: "cd {{ ca_dir }} && {{ bin_dir }}/cfssl gencert \
|
||||||
-ca={{ ca_dir }}/ca.pem \
|
-ca={{ ca_dir }}/ca.pem \
|
||||||
-ca-key={{ ca_dir }}/ca-key.pem \
|
-ca-key={{ ca_dir }}/ca-key.pem \
|
||||||
|
|
Loading…
Reference in New Issue