K8S入门系列之二:用kubeadm管理集群


kubeadm功能

  • 按照参数或配置文件初始化控制平面
    • 按照指定版本自动pull控制平面组件镜像
    • 调用本地容器运行时以静态pod形式运行核心组件
    • 在/etc/kubernetes/pki自动创建根证书,并使用根证书为组件签发证书
    • 创建管理员登陆凭证:/etc/kubernetes/admin.conf
  • 使用discovery token和TLS bootstrap token管理worker节点
    • 安全地增加集群worker节点
    • 安全恢复节点
  • 平滑升级和降级集群
  • 续签证书
  • 构建高可用集群,多master节点、多etcd节点
  • 不依赖平台,可在本地或公有云上部署集群

kubeadm子命令

子命令说明
kubeadm completion kubeadm为指定的shell(bash或zsh)中的子命令或参数实现自动补齐
source <(kubeadm completion bash)
kubeadm certs 用于使用kubeadm处理集群证书
kubeadm certs check-expiration ## 检查默认存放在/etc/kubernetes/pki中CA和证书文件的过期日期和剩余时间
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 init默认配置
kubeadm config print join-defaults ## 生成kubeadm join默认配置
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令牌将永不过期

文章作者: 洪宇轩
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 洪宇轩 !
评论
 上一篇
K8S入门系列之四:用kubectl操作和访问集群 K8S入门系列之四:用kubectl操作和访问集群
kubectl是K8S提供的命令行工具,用于与Kubernetes API和Kubernetes集群的控制面进行通信。本文介绍kubectl基本用法。
2022-04-19
下一篇 
K8S入门系列之一:Kubernetes概览 K8S入门系列之一:Kubernetes概览
Kubernetes是一个可移植的、可扩展的容器编排工具与平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。
2022-04-17
  目录