<文章感谢 xingdian >
文章目录
深入浅出kubeadm
一.kubeadm使用
Kubeadm 是一个工具,它提供了 kubeadm init 以及 kubeadm join 这两个命令作为快速创建kubernetes 集群的最佳实践.
1.kubeadm init
作用 :
初始化一个 Kubernetes 控制平面节点
语法格式 :
kubeadm init [flags]
举例:
[root@master ~]# kubeadm init --kubernetes-version=1.19.2 --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=10.0.1.10
参数解释:
–apiserver-advertise-address string
API 服务器所公布的其正在监听的 IP 地址。如果未设置,则使用默认网络接口。
–apiserver-bind-port int32 默认值:6443
API 服务器绑定的端口。
–apiserver-cert-extra-sans stringSlice
用于 API Server 服务证书的可选附加主题备用名称(SAN)。可以是 IP 地址和 DNS 名称。
–cert-dir string 默认值:"/etc/kubernetes/pki"
保存和存储证书的路径。
–certificate-key string
用于加密 kubeadm-certs Secret 中的控制平面证书的密钥。
–config string
kubeadm 配置文件的路径。
–control-plane-endpoint string
为控制平面指定一个稳定的 IP 地址或 DNS 名称。
–ignore-preflight-errors stringSlice
错误将显示为警告的检查列表;例如:‘IsPrivilegedUser,Swap’。取值为 ‘all’ 时将忽略检查中的所有错误。
–image-repository string 默认值:“k8s.gcr.io”
选择用于拉取控制平面镜像的容器仓库
–kubernetes-version string 默认值:“stable-1”
为控制平面选择一个特定的 Kubernetes 版本。
–node-name string
指定节点的名称。
–pod-network-cidr string
指明 pod 网络可以使用的 IP 地址段。如果设置了这个参数,控制平面将会为每一个节点自动分配 CIDRs。
Init 命令的工作流程:
在做出变更前运行一系列的预检项来验证系统状态。一些检查项目仅仅触发警告,其它的则会被视为错误并且退出 kubeadm,除非问题得到解决或者用户指定了 --ignore-preflight-errors= 参数
生成一个自签名的 CA 证书 (或者使用现有的证书,如果提供的话) 来为集群中的每一个组件建立身份标识。如果用户已经通过 --cert-dir 配置的证书目录(默认为 /etc/kubernetes/pki)提供了他们自己的 CA 证书以及/或者密钥, 那么将会跳过这个步骤
将 kubeconfig 文件写入 /etc/kubernetes/ 目录以便 kubelet、控制器管理器和调度