kubeadm config print init-defaults > init.yaml
---
#TLS Bootstraping(证书引导)
apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:
- groups:
- system:bootstrappers:kubeadm:default-node-token
token: abcdef.0123456789abcdef #令牌名称
ttl: 24h0m0s #令牌存活时长,到期后令牌自动销毁。设为0则令牌长期有效。
usages:
- signing
- authentication
kind: InitConfiguration
localAPIEndpoint:
advertiseAddress: 192.168.1.50 #管理节点的IP地址
bindPort: 6443 #监听的端口信息
nodeRegistration:
criSocket: /var/run/dockershim.sock #Runtime的socket地址
imagePullPolicy: IfNotPresent #镜像下载规则
name: master #管理节点的名称
taints: null #污点
---
apiServer:
timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes #集群名称
controllerManager: {}
dns: {}
etcd:
local:
dataDir: /var/lib/etcd #etcd数据库位置
imageRepository: registry:5000/k8s #镜像仓库地址
kind: ClusterConfiguration
kubernetesVersion: 1.22.5 #版本信息
networking: #网络信息
dnsDomain: cluster.local
podSubnet: 10.244.0.0/16 #pod地址段(新添加的信息)
serviceSubnet: 10.245.0.0/16 #service地址段
scheduler: {}
---
kind: KubeProxyConfiguration #启用IPVS模式
apiVersion: kubeproxy.config.k8s.io/v1alpha1
mode: ipvs
ipvs:
strictARP: true
---
kind: KubeletConfiguration
apiVersion: kubelet.config.k8s.io/v1beta1
cgroupDriver: systemd #设置kubelet使用的Croup驱动模式为systemd
Master apiserver启用TLS认证后,Node节点kubelet和kube-proxy要与kube-apiserver进行通信,必须使用CA签发的有效证书才可以,当Node节点很多时,这种客户端证书颁发需要大量工作,同样也会增加集群扩展复杂度。
为了简化流程,Kubernetes引入了TLS bootstraping机制来自动颁发客户端证书,kubelet会以一个低权限用户自动向apiserver申请证书,kubelet的证书由apiserver动态签署。
评论