【Kubenetes】kubeadm初始化,安装网络插件calico,延长证书有效期

一,使用kubeadm初始化k8s集群

第1步:

【如果容器为dokcer】执行下面命令:

上传通过 docker save -o 打包好的镜像文件 k8simage-1-20-6.tar.gz,然后在所有机器节点导入:

docker load -i k8simage-1-20-6.tar.gz

【如果容器为containerd】执行下面命令:

上传通过 ctr -n=k8s.io images export 打包好的镜像文件 k8s_1.26.0.tar.gz,然后在所有机器节点导入:

ctr -n=k8s.io images import k8s_1.26.0.tar.gz

# 可用查看导入到默认的containerd的命名空间内的镜像列表
ctr -n=k8s.io images ls

若是k8s相关的镜像,都默认在k8s.io这个命名空间,所以导入镜像时需要指定命令空间为k8s.io

第2步:

仅在master主节点,生成初始化的yaml文件,并且修改配置。

kubeadm config print init-defaults > kubeadm.yaml

在这里插入图片描述
更改内容如下:


registry.aliyuncs.com/google_containers

podSubnet: 10.244.0.0/16 

---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: ipvs
---
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
cgroupDriver: systemd

注意:如果容器采用的是containerd服务,此处配置第2处,应该改为正确的目录,查找命令:

find /  -name 'containerd.sock'

将查询结果路径,替换第2处的位置即可!

第3步:

初始化kubeadm,并且添加一个参数:--ignore-preflight-errors=SystemVerification

kubeadm init --config=kubeadm.yaml --ignore-preflight-errors=SystemVerification

在这里插入图片描述
执行提示的命令:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

【特别提醒】:
此时会生成文件config,在/root/.kube/config,将它拷贝到其他node机器节点对应的路径下,就可以执行使用kubectl命令了

# 也可以通过此命令查看config内容:
kubectl config view

二,将节点机器,加入集群

在master控制节点上,查看加入节点的命令:

kubeadm token create --print-join-command

显示如下:
kubeadm join 192.168.40.190:6443 --token vulvta.9ns7da3saibv4pg1  --discovery-token-ca-cert-hash sha256:72a0896e27521244850b8f1c3b600087292c2d10f2565adb56381f1f4ba7057a

在node节点上,把node1加入k8s集群:

kubeadm join 192.168.40.180:6443 --token vulvta.9ns7da3saibv4pg1  --discovery-token-ca-cert-hash sha256:72a0896e27521244850b8f1c3b600087292c2d10f2565adb56381f1f4ba7057a --ignore-preflight-errors=SystemVerification

【注意】:一定加入该参数,--ignore-preflight-errors=SystemVerification

如果忘记加,已经生成了证书,再次执行提示证书已经存在 “already exists”,此时需要重置后,再执行:

# 重置
kubeadm reset

【扩展】:为node节点打标签

kubectl labe node meinode[节点名] node-role.kubernetes.io/worker=worker[标签名称]

在这里插入图片描述

三,安装网络插件calico

此时,集群状态还是NotReady状态,因为没有安装网络插件,下面安装网络插件calico。安装版本要统一,尽量不要安装最新版本!

下载地址:
https://docs.projectcalico.org/manifests/calico.yaml

该文件特殊说明:

在这里插入图片描述

安装插件calico

kubectl apply -f  calico.yaml

在这里插入图片描述

四,测试在k8s创建pod是否可以正常访问网络

1,在node节点导入 busybox-1-28.tar.gz 镜像,并且加载

docker load -i busybox-1-28.tar.gz

2,在master节点创建容器,并测试网络

kubectl run busybox --image busybox:1.28 --image-pull-policy=IfNotPresent --restart=Never --rm -it busybox --sh

进入容器内后:

ping www.baidu.com
# 显示如下内容
PING www.baidu.com (39.156.66.18): 56 data bytes
64 bytes from 39.156.66.18: seq=0 ttl=127 time=39.3 ms
nslookup kubernetes.default.svc.cluster.local
# 显示如下内容
Server:    10.96.0.10
Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local

Name:      kubernetes.default.svc.cluster.local
Address 1: 10.96.0.1 kubernetes.default.svc.cluster.local

K8S证书过期解决方案

查看证书有效时间:

openssl x509 -in /etc/kubernetes/pki/ca.crt -noout -text  |grep Not
openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text  |grep Not

延长证书过期时间

1.把update-kubeadm-cert.sh文件上传到master节点

2.在master节点上执行如下:

# 添加可执行权限
chmod +x update-kubeadm-cert.sh
# 执行命令,把时间延长到10年
./update-kubeadm-cert.sh all
# 在master节点查询Pod是否正常,能查询出数据说明证书签发完成
kubectl  get pods -n kube-system

# 执行第一步命令,再次查看证书有效期,可以看到会延长到10年
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一直奔跑在路上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值