K8S之kubeadm安装v1.21.1
#kubernetes 主节点的高可用参考v1.14.3版本的keepalived+haproxy 安装配置
init.yaml文件
apiVersion: kubeadm.k8s.io/v1beta2
bootstrapTokens:
- groups:
- system:bootstrappers:kubeadm:default-node-token
token: ccf1qx.tr3s1vltq4j85cbb
ttl: 24h0m0s
usages:
- signing
- authentication
kind: InitConfiguration
localAPIEndpoint:
advertiseAddress: 172.23.210.22
bindPort: 6443
nodeRegistration:
criSocket: /var/run/dockershim.sock
name: test-01
taints:
- effect: NoSchedule
key: node-role.kubernetes.io/master
---
apiServer:
timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controlPlaneEndpoint: 172.23.210.26:12567 # 高可用api
controllerManager: {}
dns:
type: CoreDNS
etcd:
local:
dataDir: /var/lib/etcd
imageRepository: registry.aliyuncs.com/google_containers # 国内镜像源
kind: ClusterConfiguration
kubernetesVersion: v1.21.0
networking:
dnsDomain: cluster.local
podSubnet: 172.7.0.0/16 # pod网段
serviceSubnet: 10.96.0.0/12 # 服务网段
scheduler: {}提前在所有主节点拉取镜像,其中coredns镜像这个源没有,所以手动从docker.io拉取了一个官方镜像再改标签
kubeadm config images pull --config=init.yaml
docker pull coredns/coredns:1.8.0
docker tag 296a6d5035e2 registry.aliyuncs.com/google_containers/coredns/coredns:v1.8.0kubeadm init --config=init.yaml --upload-certs
...
You can now join any number of the control-plane node running the following command on each as root:
kubeadm join 172.23.210.26:12567 --token ccf1qx.tr3s1vltq4j85cbb \
--discovery-token-ca-cert-hash sha256:a94572e6aba617ebb08221a6322be1a6c23b71f78016d349b7f299d8c32d322e \
--control-plane --certificate-key 1badb0f2faec023df33cf0598f0f4052bb16fd9b116d2fea5508cfb56bdd7daa
Please note that the certificate-key gives access to cluster sensitive data, keep it secret!
As a safeguard, uploaded-certs will be deleted in two hours; If necessary, you can use
"kubeadm init phase upload-certs --upload-certs" to reload certs afterward.
Then you can join any number of worker nodes by running the following on each as root:
kubeadm join 172.23.210.26:12567 --token ccf1qx.tr3s1vltq4j85cbb \
--discovery-token-ca-cert-hash sha256:a94572e6aba617ebb08221a6322be1a6c23b71f78016d349b7f299d8c32d322e
...如果主节点加入时token和key过期了,按下面的操作生成新的token和key进行替换再尝试加入集群,
kubeadm token list # 查看所有token
kubeadm token create # 新建token
qn9c55.hs7z15ynhx40lgei # 生的新token
kubeadm init phase upload-certs --upload-certs # 更新key
[upload-certs] Storing the certificates in Secret "kubeadm-certs" in the "kube-system" Namespace
[upload-certs] Using certificate key:
f46155cffdc9e8eb7b026255881a9fd290b35607047907a4ad66dce02d421aa6
# 获取ca证书sha256编码hash值
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'网络组件
最后更新于