k8s高可用环境部署5(加入Master/Node)
前言前几篇已经部署好环境,接着就可用正式部署k8s了kubeadm初始化集群可使用命令直接初始化,也可使用配置文件当使用文件初始化时,需要确保配置的正确性1~2仅在master1上执行即可<1>创建kubeadm配置文件cat >kubeadm-config.yaml <<EOFapiVersion: kubeadm.k8s.io/v1beta2kind: Clust
·
前言
前几篇已经部署好环境,接着就可用正式部署k8s了
kubeadm初始化集群
可使用命令直接初始化,也可使用配置文件
当使用文件初始化时,需要确保配置的正确性
1~2仅在master1上执行即可
<1>创建kubeadm配置文件
cat >kubeadm-config.yaml <<EOF
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: v1.17.3
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
etcd:
external:
endpoints:
- https://192.168.1.1:2379
- https://192.168.1.2:2379
- https://192.168.1.3:2379
caFile: /etc/kubernetes/pki/etcd/ca.pem
certFile: /etc/kubernetes/pki/etcd/etcd.pem
keyFile: /etc/kubernetes/pki/etcd/etcd-key.pem
networking:
podSubnet: 10.244.0.0/16
serviceSubnet: 10.96.0.0/12
apiServer:
certSANs:
- "cluster.kube.com"
controlPlaneEndpoint: "cluster.kube.com:16443"
EOF
部分参数介绍:
imageRepository #配置镜像下载地址,此处使用阿里云的镜像
podSubnet #pod网段 Calico或flannel网络插件中的配置的网段需与此网段相同,否则会导致网络问题
serviceSubnet #service网络,pod网段和service网段,不可冲突,尽量避免与当前其他网段冲突
controlPlaneEndpoint #配置集群 此处master使用SLB+haproxy做了负载均衡,配置hosts域名解析到了SLB SLB有异常或关闭时,hosts域名对应ip可手动配置为对应haproxy节点ip
<2>初始化
kubeadm init --config=kubeadm-config.yaml
<3>补充
如何根据配置文件,列出和拉取镜像
kubeadm config images list --config kubeadm-config.yaml
kubeadm config images pull --config kubeadm-config.yaml
如果使用命令创建集群,示例:
kubeadm init --kubernetes-version=v1.17.3 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap
--pod-network-cidr k8s内部的pod节点之间网络可以使用的IP段,不能和service-cidr一样 =podSubnet
--service-cidr service网络,pod网段和service网段,不可冲突,尽量避免与当前其他网段冲突 =serviceSubnet
<4>添加节点
由于是在master1上执行,在其他各节点执行下图中的kubeadm join命令,即为当前集群加入节点
第一个是添加master,第二个是添加node
补充:
注意token是有期限的,token过期不会影响集群。token过期后,无法使用旧token加入集群,需重新生成token
#重新生成token
kubeadm token create
#列出token
kubeadm token list | awk -F" " '{print $1}' |tail -n 1
#获取CA公钥的哈希值
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^ .* //'
<4>先将证书拷贝到其他master节点,其他master再执行kubeadm join,加入集群
rsync -aP /etc/kubernetes/pki/ root@k8s-master02:/etc/kubernetes/pki/
rsync -aP /etc/kubernetes/pki/ root@k8s-master03:/etc/kubernetes/pki/
<5>认证linux用户操作权限
(在各master节点执行)
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
node节点仅需执行kubeadm join即可
<6>在各master节点,查看节点状态
查看节点
kubectl get node
查看集群状态
kubectl get cs
NAME STATUS MESSAGE ERROR
scheduler Healthy ok
controller-manager Healthy ok
etcd-1 Healthy {"health":"true"}
etcd-2 Healthy {"health":"true"}
etcd-0 Healthy {"health":"true"}
各节点显示ok,无报错即为成功
解除非安全端口导致的报错:
https://moxiao.blog.csdn.net/article/details/115730831
动态查看 kube-system 命名空间下的pod
kubectl get pod -n kube-system -o wide -w
查看当前集群的配置内容
kubeadm config view
更多推荐
已为社区贡献4条内容
所有评论(0)