【完整版Kubernetes(K8S)入门系列四】Centos7 使用Kubeadm 搭建集群环境

编程入门 行业动态 更新时间:2024-10-27 02:22:33

【<a href=https://www.elefans.com/category/jswz/34/1770030.html style=完整版Kubernetes(K8S)入门系列四】Centos7 使用Kubeadm 搭建集群环境"/>

【完整版Kubernetes(K8S)入门系列四】Centos7 使用Kubeadm 搭建集群环境

1.安装环境

  操作系统:Centos7

  Docker: 20+

  K8s: 1.23.6

  三台服务器(虚拟机):

角色IP
k8smaster192.168.43.129
k8snode130192.168.43.130
k8snode131192.168.43.131

2.初始工作

   所有服务器按步骤执行下列脚本

# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld# 关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config  # 永久
setenforce 0  # 临时# 关闭swap
swapoff -a  # 临时
sed -ri 's/.*swap.*/#&/' /etc/fstab    # 永久# 根据规划设置主机名
hostnamectl set-hostname <hostname># 在master添加hosts
cat >> /etc/hosts << EOF
192.168.43.129 k8smaster
192.168.43.130 k8snode130
192.168.43.131 k8snode131
EOF# 将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system  # 生效# 时间同步
yum install ntpdate -y
ntpdate time.windows

3. 所有节点安装Docker、kubeadm、kubelet

   Kubernetes默认CRI(容器运行时)为Docker,因此先安装Docker。

  3.1 安装Docker

wget .repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce
systemctl enable docker && systemctl start docker

  3.2配置Docker镜像加速器

sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": [""]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

  3.3 添加阿里云YUM软件源

cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=.gpg .gpg
EOF

  3.4 安装kubeadm,kubelet和kubectl

由于版本更新频繁,这里指定版本号部署:

yum install -y kubelet-1.23.6 kubeadm-1.23.6 kubectl-1.23.6
systemctl enable kubelet

4.初始化Master节点

        4.1 在Master上执行初始化脚本。

$ kubeadm init \--apiserver-advertise-address=192.168.43.129 \--image-repository registry.aliyuncs/google_containers \--kubernetes-version v1.23.6 \--service-cidr=10.96.0.0/12 \--pod-network-cidr=10.244.0.0/16

  其中,初始化过程中可能出现问题

问题:failed to create sandbox for pod :拉取  registry.k8s.io/pause:3.6 镜像失败 journalctl -xeu kubelet查看的日志报错信息
Failed to create sandbox for pod” err="rpc error: code = Unknown desc = failed to get sandbox image “ registry.k8s.io/pause:3.6”: failed to pull image “ registry.k8s.io/pause:3.6 问题

拉取  registry.k8s.io/pause:3.6 镜像失败 导致sandbox 创建不了而报错

解决:重新配置 sandbox 镜像 仓库,将默认的  registry.k8s.io/pause:3.6 修改成 “ registry.aliyuncs/google_containers/pause:3.6”

  步骤1. 生成 containerd 的默认配置文件

containerd config default > /etc/containerd/config.toml

  步骤2. 通过vi修改生成的配置文件

  步骤3. 重启containerd

systemctl daemon-reload
systemctl restart containerd.service

   重启后,可以拉去镜像了。

        4.2 初始化成功后,执行以下脚本

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

5.加入节点node1,node2

  初始化master节点后,不要清屏,复制初始化成功后输出的结果

  将复制的脚本在node1,node2服务器上执行

kubeadm join 192.168.43.129:6443 --token l80tk9.2hdts2uwxgeqh1ym \--discovery-token-ca-cert-hash sha256:bc10f13f52fdace4aa09d5530f3473cf733457d3ccab2c4a8ceaca5724f40d74

  默认token有效期为24小时,当过期之后,该token就不可用了。这时就需要重新创建token,操作如下:

kubeadm token create --print-join-command

6. 部署CNI网络插件

wget .yml

   使用vi修改kube-flannel.yml配置文件中的docker.io镜像地址

   执行指令:

kubectl apply -f kube-flannel.yml

   查看是否配置成功

 kubectl get pods -n kube-system

Running则表示配置成功

7.测试集群是否部署成功

  在Kubernetes集群中创建一个pod,验证是否正常运行:

kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc

   浏览器访问192.168.43.131:31941 、192.168.43.130:31941 、192.168.43.129:31941查看效果

8. 在任意节点Node中使用kubectl

         完成以上7个步骤后,还存在一个问题,节点服务器中无法使用kubectl命令行,按要求可以配置节点Node也可以使用kubectl命令行

解决:

   步骤1. 将master 节点中/etc/kubernetes/admin.conf 配置文件拷贝到需要运行的Node服务器的/etc/kubernetes目录中

scp /etc/kubernetes/admin.conf root@192.168.43.130:/etc/kubernetes

   步骤2. 在对应的节点服务器上配置环境变量

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_profile

  测试,是否可以使用kubectl


 至此,集群部署成功啦!

更多推荐

【完整版Kubernetes(K8S)入门系列四】Centos7 使用Kubeadm 搭建集群环境

本文发布于:2024-02-08 21:35:06,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1675306.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:完整版   集群   入门   环境   系列

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!