kubeadm常用命令

一  kubeadm token 命令

++++++++ "kubectl和kubeadm命令执行的时候" ++++++++

默认情况下,kubectl 在 '$HOME/.kube' 目录下查找名为'config'的文件

可以通过设置'KUBECONFIG环境变量'或设置'--kubeconfig参数'来指定其他Kubeconfig文件
​
解决1: k8s 'token 过期' 的解决方法

①  总概

②  create

++++++++++  "背景铺垫"  ++++++++++

1、在 K8s '1.8+' 之后,'默认'生成的 Token 有效期只有 '24' 小时,过期后 token 将不可用

2、如果想'新的 Node 节点'加入 K8s 集群,则需'重新生成'新的 token

3、生产环境中我们一般都会采用'默认'的有效期即可,目的是为了 K8s 集群的'安全'

常见1: 生成默认 '24' 小时 Token

kubeadm token list

常见2: 生成'永久有效'的Token

kubeadm token list -ttl 0

常见3: 直接生成 Node '加入 K8s 集群'的完整命令,'worker'节点加入

kubeadm token create --print-join-command -ttl 0

备注: '永久有效'

证书过期的解决方案 

常见4: 加入'master'节点

kubeadm join ip:port --token ... --discovery-token-ca-cert-hash ... \

  --control-plane --certificate-key ...

重点: '--certificate-key'如何获取? 

说明: kubeadm init --config=kubeadm-config.yaml --upload-certs 初始化时会'回显'

会显信息

二   kubeadm join 

说明: 获取 'CA 证书' Hash 值

openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | \

openssl rsa -pubin -outform der 2>/dev/null | \

openssl dgst -sha256 -hex | sed 's/^.* //'

三  kubeadm init

①  init干了什么事情

说明: 拉取'registry.k8s.io仓库'的镜像源失败

--image-repository=registry.aliyuncs.com/google_containers

# kubeadm init 指定的kubernetes版本为'不兼容'版本

kubeadm init --kubernetes-version=1.22

常用: kubeadm init --config=kubeadm-config.yaml --upload-certs

备注: 'kubeadm-config.yaml'是'kubeadm config print init-defaults' 生成的

②  常用 

kubeadm init --apiserver-advertise-address=172.25.2.100 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version=v1.18.20 \									#版本号自选
--service-cidr=10.96.0.0/12 \									#可不改
--pod-network-cidr=10.244.0.0/16								#可不改

初始化成功后显示:Your Kubernetes control-plane has initialized 'successfully!'

四   kubeadm config

①  总概

kubectl -n kube-system edit configmap kubeadm-config

②  config images

说明: 由于'网络'原因,某些镜像'无法'下载,需要看下需要下载'哪些'镜像

kubeadm  config images list

说明: 使用'自定义'镜像仓库拉取'init'所需的镜像

kubeadm config images pull --config init-full-config.yaml

说明: 一般镜像'提前下载'好

config  print

需求2: 打印'默认'的init 配置文件

kubeadm config print init-defaults > initconfig.yaml

场景: 生成服务'清单','修改后'再指定

关注: 'init-defaults'和'join-defaults'

④  config view 查看

五   kubeadm reset

kubeadm init 初始化集群操作'失败'的环境和配置遗留

解决: 重置节点 'kubeadm reset'

思考: 如何'删除'集群的一个'worker'节点 

六   kubeadm appha certs

一年证书到期更换证书

说明: 查看证书命令下有'哪些'功能

⑥  check-expiration

 kubeadm alpha certs check-expiration

 1、查看证书'过期'时间

 2、该命令显示'/etc/kubernetes/pki'文件夹中的客户端证书

 3、以及 kubeadm 使用的 'KUBECONFIG 文件中'嵌入的客户端证书的'到期时间/剩余时间'

 4、新版本命令:kubeadm certs check-expiration

⑦  renew

renew '说明': 更新 Kubernetes 集群的证书,'不涉及' CA 根证书 --> '续订k8s自签证书'

说明: 生成'新的证书'之前最好'备份'一下数据

cp -rp /etc/kubernetes /etc/kubernetes.bak 

cp -rp /var/lib/etcd /var/lib/etcd.bak

⑧  renew的选项

all:       更新'所有'可用证书,一般可以'直接使用'这个更新所有。
apiserver: 单独更新服务 Kubernetes API 的证书,相当于针对'单个组件'进行生成
apiserver-etcd-client: 更新 apiserver 用来访问 'etcd 的证书'

k8s证书配置过期时间   阳明更新证书

引申: 如果是'自建'集群,在init的时候最好把证书的有效期'修改'了
  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Kubeadm用于部署Kubernetes集群,初始化命令kubeadm init,可用参数包括--apiserver-advertise-address,--apiserver-cert-extra-sans,--node-name,--pod-network-cidr,--service-cidr等。 ### 回答2: kubeadmKubernetes的一个组件,用于部署和初始化Kubernetes集群。它提供了一组命令和参数,可以根据用户的需求来进行初始化。以下是kubeadm部署Kubernetes的初始化命令及其可用参数的介绍: 1. kubeadm init命令:这个命令用于初始化一个全新的Kubernetes集群。在执行该命令之前,需要提前安装好Docker,并确保网络可以访问所需的Kubernetes镜像。 可用参数: - --apiserver-advertise-address:指定Kubernetes API服务器的广告地址。 - --apiserver-cert-extra-sans:为API服务器的证书添加额外的SAN(Subject Alternative Name)。 - --pod-network-cidr:为集群指定Pod网络CIDR地址范围,用于分配给每个Pod。 - --service-cidr:指定服务网络CIDR地址范围,用于分配给Kubernetes服务。 - --token:使用指定的令牌加入集群。 - --token-ttl:指定令牌的有效期。 - --ignore-preflight-errors:忽略预检错误,允许在初始化期间继续进行。 2. kubeadm join命令:该命令用于将一个新的节点加入到已初始化的Kubernetes集群中。 可用参数: - --discovery-token:指定要加入的集群的发现令牌。 - --discovery-token-ca-cert-hash:指定发现令牌的CA证书哈希值。 - --control-plane:将节点加入到具有控制平面角色的集群中。 - --ignore-preflight-errors:忽略预检错误,允许在加入节点期间继续进行。 以上是kubeadm部署Kubernetes初始化命令及其可用参数的简要介绍。在实际使用中,还可以根据需要使用其他参数来进行更高级的自定义配置。 ### 回答3: kubeadmKubernetes的一个工具,用于初始化和部署一个可工作的Kubernetes集群。它提供了一些命令和参数,用于初始化集群的配置。 kubeadm初始化命令是"kubeadm init"。使用此命令将启动初始化过程,创建集群的控制平面。此命令需要在Master节点上执行,并且可以通过添加一些可选参数来进行配置。 一些常用的可用参数包括: - --apiserver-advertise-address: 指定Master节点的IP地址或主机名,用于与其他节点交互和通信。 - --pod-network-cidr: 指定Pod网络的网络段,用于分配给集群中的Pod。 - --service-cidr: 指定Service使用的IP地址段,用于分配给Service。 - --apiserver-cert-extra-sans: 指定额外的Subject Alternative Names(SANs)用于Master节点的证书。 - --token: 为新节点加入集群时使用的令牌。 - --kubernetes-version: 指定要安装的Kubernetes版本。 - --ignore-preflight-errors: 忽略预检查错误,继续进行初始化过程。 - --feature-gates: 指定要启用的Kubernetes功能门,例如"ServiceNodePortRange=80-32767"。 这些参数可以根据部署需求和环境的不同进行配置。部署完成后,kubeadm会生成一个加入命令,用于将其他节点加入集群。 总而言之,kubeadm init命令和可用参数提供了灵活性和定制化选项,使得部署Kubernetes集群变得更加简单和可控。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值