本文作者:丁辉
Kubeasz部署Kubernetes集群
节点名称 | IP | Kubernetes角色 |
---|---|---|
k8s-master-1,Kubeasz管理 | 192.168.1.10 | master,etcd,node |
k8s-master-2 | 192.168.1.20 | master,etcd,node |
k8s-master-3 | 192.168.1.30 | master,etcd,node |
环境准备
配置免密
1
ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa -q
配置免密登录
1
2
3ssh-copy-id root@192.168.1.10
ssh-copy-id root@192.168.1.20
ssh-copy-id root@192.168.1.30更改主机名
192.168.1.10
1
hostnamectl set-hostname k8s-master-1 && bash
192.168.1.20
1
hostnamectl set-hostname k8s-master-2 && bash
192.168.1.30
1
hostnamectl set-hostname k8s-master-3 && bash
编辑 /etc/hosts 文件
1
vi /etc/hosts
添加如下内容
1
2
3192.168.1.10 k8s-master-1
192.168.1.20 k8s-master-2
192.168.1.30 k8s-master-3
开始部署 Kubeasz
下载 ezdown
1
wget https://github.com/easzlab/kubeasz/releases/download/3.6.2/ezdown && chmod 777 ezdown
下载支持 Docker 的版本
1
wget https://github.com/easzlab/kubeasz/releases/download/3.2.0/ezdown && chmod 777 ezdown
下载kubeasz代码、二进制、默认容器镜像
国内环境
1
./ezdown -D
下载 flannel 镜像
1
./ezdown -X flannel
海外环境
1
./ezdown -D -m standard
下载 flannel 镜像
1
./ezdown -D -m standard -X flannel
运行 Kubeasz
1
./ezdown -S
配置快捷命令
1
2echo "alias dk='docker exec -it kubeasz'" >> ~/.bashrc
source ~/.bashrc配置后执行
dk
即可创建新集群
1
dk ezctl new k8s-01
编辑 hosts 文件
1
vi /etc/kubeasz/clusters/k8s-01/hosts
内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32# 'etcd' cluster should have odd member(s) (1,3,5,...)
[etcd]
192.168.1.10
192.168.1.20
192.168.1.30
# master node(s)
[kube_master]
192.168.1.10 k8s_nodename='k8s-master-1'
192.168.1.20 k8s_nodename='k8s-master-2'
192.168.1.30 k8s_nodename='k8s-master-3'
# work node(s)
[kube_node]
192.168.1.10 k8s_nodename='k8s-master-1'
192.168.1.20 k8s_nodename='k8s-master-2'
192.168.1.30 k8s_nodename='k8s-master-3'
# VIP
[ex_lb]
192.168.1.10 LB_ROLE=master EX_APISERVER_VIP=192.168.1.100 EX_APISERVER_PORT=8443
192.168.1.20 LB_ROLE=backup EX_APISERVER_VIP=192.168.1.100 EX_APISERVER_PORT=8443
192.168.1.30 LB_ROLE=backup EX_APISERVER_VIP=192.168.1.100 EX_APISERVER_PORT=8443
...#此处省略
# Cluster container-runtime supported: docker, containerd
CONTAINER_RUNTIME="containerd"
# Network plugins supported: calico, flannel, kube-router, cilium, kube-ovn
CLUSTER_NETWORK="flannel"
...#此处省略修改 config.yml 文件
1
vi /etc/kubeasz/clusters/k8s-01/config.yml
内容如下
1
2
3
4
5
6
7
8
9############################
# role:kube-master
############################
# k8s 集群 master 节点证书配置,可以添加多个ip和域名(比如增加公网ip和域名)尽量预留一些IP使用
MASTER_CERT_HOSTS:
- "192.168.1.10"
- "192.168.1.20"
- "192.168.1.30"
- "192.168.1.100"
开始安装 Kubernetes
安装
1
dk ezctl setup k8s-01 all
或一步一步安装
1
2
3
4
5# 初始化集群配置
dk ezctl setup k8s-01 01
# 安装 etcd
dk ezctl setup k8s-01 02
...#此处省略加载新配置
1
source ~/.bashrc
查看节点状态
1
kubectl get node
添加节点
添加 worker
1
dk ezctl add-node k8s-01 192.168.1.40 k8s_nodename='k8s-master-4'
SSH 非 22 端口
1
dk ezctl add-node k8s-01 192.168.1.40 k8s_nodename='k8s-master-4' ansible_ssh_port=10022
添加 master
1
dk ezctl add-master k8s-01 192.168.1.40 k8s_nodename='k8s-master-4'
添加 etcd
1
dk ezctl add-etcd k8s-01 192.168.1.40
删除节点
删除 worker
1
dk ezctl del-node k8s-01 192.168.1.40
删除 master
1
dk ezctl del-master k8s-01 192.168.1.40
删除 etcd
1
dk ezctl del-etcd k8s-01 192.168.1.40
I'm so cute. Please give me money.
- 本文链接: https://blog.offends.cn/Kubernetes/部署文档/Kubeasz/Kubeasz部署Kubernetes集群.html
- 版权声明: 本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。