kubeadm功能
- 按照参数或配置文件初始化控制平面
- 按照指定版本自动pull控制平面组件镜像
- 调用本地容器运行时以静态pod形式运行核心组件
- 在/etc/kubernetes/pki自动创建根证书,并使用根证书为组件签发证书
- 创建管理员登陆凭证:/etc/kubernetes/admin.conf
- 使用discovery token和TLS bootstrap token管理worker节点
- 平滑升级和降级集群
- 续签证书
- 构建高可用集群,多master节点、多etcd节点
- 不依赖平台,可在本地或公有云上部署集群
kubeadm子命令
子命令 | 说明 |
kubeadm completion |
kubeadm为指定的shell(bash或zsh)中的子命令或参数实现自动补齐
source <(kubeadm completion bash)
|
kubeadm certs |
用于使用kubeadm处理集群证书
kubeadm certs check-expiration
kubeadm certs renew <all|certname>
|
kubeadm config |
管理kubeadm集群的配置,该配置保留在集群的kube-system命名空间中名为kubeadm-config的ConfigMap,kubeadm使用它来存储关于集群的内部配置。使用kubectl -n kube-system get cm kubeadm-config -o yaml打印当前的集群配置
kubeadm config images list
kubeadm config images pull
kubeadm config print init-defauts
kubeadm config print join-defaults
|
kubeadm init |
运行此命令以设置kubernetes控制平面 |
kubeadm join |
在任何想要加入现有集群的节点上运行此命令 |
kubeadm reset |
还原集群到初始化状态 |
kubeadm token |
使用generate、create、list、delete子命令管理令牌 |
kubeadm upgrade |
使用此命令平稳的将集群升级到指定版本 |
kubeadm version |
打印版本 |
kubeadm help |
打印帮助信息 |
kubeadm init 参数说明
参数 |
说明 |
–apiserver-advertise-address |
声明API服务器正在监听的IP地址,如果未设置,将使用默认网络接口 |
–apiserver-bind-port |
API服务器要绑定的端口,默认是6443 |
–apiserver-cert-extra-sans |
可以是IP地址和DNS |
–cert-dir |
证书存放路径,默认在/etc/kubernetes/pki |
–config |
kubeadm配置文件存放路径 |
–cri-socket |
要连接的CRI套接字的路径,如果为空,则kubeadm将尝试自动检测此值;仅当安装了多个CRI或具有非标准CRI插槽时,才使用此选项 |
–dtry-run |
试运行,不做任何更改 |
–ignore-preflight-errors |
检查清单,其错误显示为警告 |
–image-repository |
镜像仓库,默认为k8s.gcr.io(国内不通) |
–kubernetes-version |
k8s版本 |
–node-name |
指定node节点名称 |
–pod-network-cidr |
指定pod网络的CIDR范围 |
–service-cidr |
指定service的CIDR范围,默认为10.96.0.0/12 |
–service-dns-domain |
为服务指定domain name。默认为cluster.local |
–token |
手动指定用于在节点和控制平面节点之间建立双向信任的令牌 |
–skip-token-print |
不打印"kubeadm init"生成的默认令牌 |
–token-ttl |
令牌的生命周期,如果设置为0,则永不过期(默认为24h) |
kubeadm join 参数说明
kubeadm join 192.168.126.100:6443 --token rxqhqd.uzn6bhwxhnrikddx --discovery-token-ca-cert-hash sha256:211774e9b0c1d5aabe9fee10b63fe5f875ce6a588d216dc7793fac2298c9e745
参数 |
说明 |
–tls-bootstrap-token |
指定用于在加入节点时临时通过kubernetes控制平面进行身份验证的令牌 |
–discovery-file |
基于文件发现用于加载集群信息的文件或URL |
–discovery-token |
基于令牌发现,令牌用于验证从API服务器获取的集群信息 |
–token |
默认令牌,如果未指定 |
–discovery-token-ca-cert-hash |
对于基于令牌的发现,请验证根CA公共密钥是否与此哈希匹配(格式:<类型>:<值> |
–discovery-token-unsafe-skip-ca-verification |
对于基于令牌的发现,允许加入时不使用–discovery-token-ca-cert-hash参数 |
kubeadm upgrade子命令说明
参数 | 说明 |
Upgrade apply |
将您的kubernetes集群升级到指定版本
kubeadm upgrade apply v1.23.5
|
Upgrade diff |
显示指定版本与现存版本配置文件的差异
kubeadm upgrade diff v1.23.5
|
Upgrade node |
升级集群中的单个节点或某个节点制定阶段性升级,支持的阶段:
control-plane、kubelet-config、preflight
|
Upgrade plan |
检查和当前kubeadm相同版本,可升级的k8s最新子版本
|
kubeadm token子命令说明
引导令牌用于在客户端和服务端之间建立双向信任。当客户端(例如即将加入集群的节点)需要信任与之通信的服务器时,可以使用引导令牌。然后可以使用带有“签名”用法的引导令牌。引导令牌还可以用作允许对API服务器进行短暂身份验证的方式(令牌用作API服务器信任客户端的方式),例如用于执行TLS引导程序。
子命令 |
说明 |
token generate |
随机生成并打印引导令牌(bootstrap tokens),但不要存入etcd |
token create |
创建引导令牌(bootstrap tokens)并存入etcd |
token list |
列出etcd中处于有效期内的所有token |
token delete |
从etcd中删除指定令牌 |
token create 参数说明
参数 |
说明 |
–print-join-command |
打印使用该令牌加入集群所需的完整kubeadm join命令 |
–ttl duration |
令牌被自动删除之前的持续时间(例如1s、2m、3h)。如果设置为0,–ttl=0令牌将永不过期 |