Centos7安装K8S的1.21.2集群

Posted 逝唁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos7安装K8S的1.21.2集群相关的知识,希望对你有一定的参考价值。

Centos7安装K8S

1、服务器

需要准备三台Centos7的服务器,配置最少2C 2G

三台服务器都已经配置好静态IP。

没有配的可以参考:VM Ware+Centos7配置静态IP

主机名IPDocker版本主机配置K8S版本
master01192.168.159.17120.10.72C8G1.21.2
work01192.168.159.17220.10.72C8G1.21.2
work02192.168.159.17320.10.72C8G1.21.2

2、环境准备

注意:以下操作需要三台服务器都执行、都需要用root权限操作

1、配置yum阿里源

  1. 使用yum命令、安装wget命令
yum -y install wget

在这里插入图片描述
在这里插入图片描述

  1. 使用mv命令将原yum源备份。
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

在这里插入图片描述

  1. 使用wget命令下载阿里yum源。
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

在这里插入图片描述

  1. 将yum源清理一下,并将阿里yum源生效。
yum clean all
yum makecache

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、关闭防火墙

  1. 使用以下命令查看防火墙状态,并关闭防火墙。显示not running为防火墙关闭状态。
# 查看防火墙状态
firewall-cmd --state
# 临时停止防火墙
systemctl stop firewalld.service
# 禁止防火墙开机启动
systemctl disable firewalld.service

在这里插入图片描述

3、关闭selinux状态

  1. 使用以下命令查看selinux状态,并关闭selinux
# 查看selinux状态
getenforce
# 临时关闭selinux
setenforce 0
# 永久关闭selinux
sed -i 's/^ *SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

在这里插入图片描述

4、禁止swap交换

  1. 使用以下命令关闭swap内存交换
# 临时关闭swap
swapoff -a
# 永久关闭swap
sed -i.bak '/swap/s/^/#/' /etc/fstab

在这里插入图片描述

5、内核参数修改

  1. 使用以下命令修改内核参数。
# 修改ipv4
sysctl -w net.ipv4.ip_forward=1
# 添加k8s.conf
cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
# 生效内核参数
sysctl -p /etc/sysctl.d/k8s.conf

在这里插入图片描述

6、设置kubernetes源

  1. 新增kubernetes的阿里源
# 添加kubernetes源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

在这里插入图片描述

  1. 使用以下命令,刷新yum源。
yum clean all
yum -y makecache

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7、Docker安装

  1. Docker选择20.10.7版本安装。

    安装步骤参考这篇博客:Centos7安装Docker

8、设置Cgroup Driver

  1. 使用vim命令修改Docker的daemon.json文件。

    增加exec-opts配置。

"exec-opts": ["native.cgroupdriver=systemd"]

在这里插入图片描述

  1. 使用以下命令重新加载daemon.json配置,并重启Docker
systemctl daemon-reload
systemctl restart docker

在这里插入图片描述

9、验证机器的mac和UUID

  1. 使用以下命令,验证机器的mac地址和UUID是否相同。
# 查看mac地址
cat /sys/class/net/ens33/address
# 查看UUID
cat /sys/class/dmi/id/product_uuid

在这里插入图片描述

10、修改主机名

  1. 使用以下命令,修改机器的主机名。

注意:三台机器主机名都需要修改

hostnamectl set-hostname master01
more /etc/hostname

在这里插入图片描述

11、修改hosts

  1. 使用以下命令,修改hosts文件。
cat >> /etc/hosts << EOF
192.168.159.171   master01
192.168.159.172   work01 
192.168.159.173   work02
EOF

在这里插入图片描述
在这里插入图片描述

12、重启机器

  1. 重启三台机器,使上面更改的配置全部生效!

3、安装K8S

1、查看K8S版本

  1. 使用yum list命令,列出所支持的版本。

注意:横杠(-)之前的才是版本号。

yum list kubelet --showduplicates | sort -r

在这里插入图片描述
在这里插入图片描述

2、安装kubelet、kubeadm、kubectl

  1. 使用yum install命令安装指定的K8S版本。

注意:三台机器都需要执行以下操作

yum install -y kubelet-1.21.2 kubeadm-1.21.2 kubectl-1.21.2

在这里插入图片描述
在这里插入图片描述

  1. 启动kubelet服务,并设置开机自启。
systemctl enable kubelet && systemctl start kubelet

在这里插入图片描述

3、拉取镜像

  1. 使用kubeadm命令、查看当前k8s所需的镜像版本。
kubeadm config images list

在这里插入图片描述

  1. 可以看到上面k8s所需的镜像版本是1.21.3。跟安装指定的版本并不相同,这个并不影响,可以自定义修改版本。

    只需要关注如:pause、etcd、coredns的版本即可。

    因为k8s这些镜像都是国外的,直接访问下载镜像可能会有问题。

    编写拉取镜像脚本,从阿里云镜像仓库下载所需版本。

    注意:脚本需要在三台机器上都编写。都需要拉取镜像

    #!/bin/bash
    url=registry.cn-hangzhou.aliyuncs.com/google_containers
    # 安装指定的kubectl版本
    version=v1.21.2
    # 上面查出来的coredns版本号
    coredns=1.8.0
    images=(`kubeadm config images list --kubernetes-version=$version|awk -F '/' '{print $2}'`)
    for imagename in ${images[@]} ; do
       if [ $imagename = "coredns" ]
       then
          docker pull $url/coredns:$coredns
          docker tag $url/coredns:$coredns k8s.gcr.io/coredns/coredns:v1.8.0
          docker rmi -f $url/coredns:$coredns
       else
          docker pull $url/$imagename
          docker tag $url/$imagename k8s.gcr.io/$imagename
          docker rmi -f $url/$imagename
      fi
    done
    

在这里插入图片描述

  1. 修改images.sh脚本权限,改为可执行权限。
chmod +x images.sh

在这里插入图片描述

  1. 执行images.sh脚本,拉取镜像
./images.sh

在这里插入图片描述
在这里插入图片描述

  1. 使用docker images命令,查看镜像
docker images

在这里插入图片描述

4、初始化K8S集群

  1. master01机器上执行初始化集群命令。

注意:该命令只需在master01上执行

kubeadm init --kubernetes-version=1.21.2 --apiserver-advertise-address=192.168.159.171 --pod-network-cidr=10.244.0.0/16

–kubernetes-version # 指定的版本

–apiserver-advertise-address # K8S主节点的地址

–pod-network-cidr # pod的网络IP范围
在这里插入图片描述
在这里插入图片描述

  1. 记录初始化集群命令后,k8s给你生成的加入集群命令。
kubeadm join 192.168.159.171:6443 --token ahuca1.yvo1nypczve06rfx \\
	--discovery-token-ca-cert-hash sha256:3c0612ffc6eaca3bd7d34fe603da008d55c2d3982268bb85105ffc464c4e1a1f

在这里插入图片描述

  1. 执行k8s集群初始化给你生成的创建目录和复制配置文件命令。
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

在这里插入图片描述

  1. work01work02两台机器上的根目录执行你刚才记录的加入K8S集群命令。
kubeadm join 192.168.159.171:6443 --token ahuca1.yvo1nypczve06rfx \\
	--discovery-token-ca-cert-hash sha256:3c0612ffc6eaca3bd7d34fe603da008d55c2d3982268bb85105ffc464c4e1a1f

在这里插入图片描述

5、在master01机器上执行以下命令,查看k8s集群节点。

kubectl get nodes

在这里插入图片描述

5、安装Calico网络插件

  1. 使用curl命令下载Calico网络插件的YAML文件。
curl https://docs.projectcalico.org/manifests/calico.yaml -O

在这里插入图片描述

  1. 使用kubectl apply应用刚刚下载好的calico.yaml文件。
kubectl apply -f calico.yaml

在这里插入图片描述

  1. 使用以下命令查看当前K8S集群的pods
kubectl get pods -o wide -n kube-system

在这里插入图片描述

以上是关于Centos7安装K8S的1.21.2集群的主要内容,如果未能解决你的问题,请参考以下文章

云原生centos7搭建安装k8s集群 v1.25版本详细教程实战

CentOS7.9安装K8S高可用集群(三主三从)

centos7下的k8s+dashboard集群部署---k8s部署

centos7 k8s集群部署

centos7.2 部署k8s集群

本机虚拟机centos7环境搭建k8s集群-实践篇