【k8s集群安装】centos安装Kubernetes集群最新版本,步骤超详细

5 篇文章 1 订阅
3 篇文章 0 订阅


前言

首先是准备工作,这里我准备了两台centos系统主机
Kubernetes 项目为基于 Debian 和 Red Hat 的 Linux 发行版以及一些不提供包管理器的发行版提供通用的指令
每台机器 2 GB 或更多的 RAM (如果少于这个数字将会影响你应用的运行内存)
2 CPU 核或更多
集群中的所有机器的网络彼此均能相互连接(公网和内网都可以)
节点之中不可以有重复的主机名、MAC 地址或 product_uuid。请参见这里了解更多详细信息。
开启机器上的某些端口。请参见这里 了解更多详细信息。
禁用交换分区。为了保证 kubelet 正常工作,你 必须 禁用交换分区。
确保内网ip是静态ip不会改变


一、安装 kubeadm、kubelet 和 kubectl,每台主机都需要执行该步骤安装,测试环境需要关闭防火墙

修改hostname,每台机器hostname不能重复

# 修改 hostname
hostnamectl set-hostname your-new-host-name
# 设置 hostname 解析
echo "127.0.0.1   $(hostname)" >> /etc/hosts

关闭swap交换分区

vim /etc/fstab

注释掉swap这一行,重启电脑
在这里插入图片描述

允许 iptables 检查桥接流量

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system

安装docker,若果安装过请跳过这一步

sudo yum install -y yum-utils
 sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io -y
systemctl start docker
systemctl enable docker.service

配置 Docker 守护程序,尤其是使用 systemd 来管理容器的 cgroup

编辑/etc/docker/daemon.json

cat <<EOF | sudo tee /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF

然后重启docker

sudo systemctl enable docker
sudo systemctl daemon-reload
sudo systemctl restart docker

然后开始安装 kubeadm、kubelet 和 kubectl

# 这里使用国内阿里云的镜像
cat <<EOF | sudo tee /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
exclude=kubelet kubeadm kubectl
EOF

# 将 SELinux 设置为 permissive 模式(相当于将其禁用)
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

sudo systemctl enable --now kubelet

在这里插入图片描述
看到这个说明安装完成了,kubelet 现在每隔几秒就会重启,因为它陷入了一个等待 kubeadm 指令的死循环。下面要用这个初始化k8s集群

二、初始化master主节点,只在master控制平面节点执行

查询创建集群需要的镜像版本

kubeadm config images list [–kubernetes-version ]
我这里要安装的最新版,所以不指定version直接执行

kubeadm config images list

在这里插入图片描述
可以看到所需镜像列表

下面我们提前拉取这些镜像,通过阿里云镜像仓库

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.23.6
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.23.6
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.23.6
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.23.6
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.6
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.5.1-0
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:v1.8.6

拉取完成后执行改变coredns的标记不然后面会找不到镜像

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:v1.8.6 registry.cn-hangzhou.aliyuncs.com/google_containers/coredns/coredns:v1.8.6

然后开始执行kubeadm init初始化控制平面节点

kubeadm init \
--apiserver-advertise-address=192.168.3.156  \
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
--kubernetes-version v1.23.6 \
--pod-network-cidr=192.168.0.0/16 \
--ignore-preflight-errors=all

apiserver-advertise-address要改成你自己节点ip或域名
在这里插入图片描述
看到这个说明初始化完成,然后根据提示执行

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

配置安装Calico网络插件

执行要执行下面命令然后等待pod启动完成

kubectl create -f https://projectcalico.docs.tigera.io/manifests/tigera-operator.yaml
kubectl create -f https://projectcalico.docs.tigera.io/manifests/custom-resources.yaml

执行完之后检查结果

# 检查结果
kubectl get nodes -o wide

在这里插入图片描述
看到status变成ready就已经完成了

三、初始化woker工作节点加入集群master

导入镜像

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.23.6
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.23.6
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.23.6
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.23.6
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.6
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.5.1-0
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:v1.8.6
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:v1.8.6 registry.cn-hangzhou.aliyuncs.com/google_containers/coredns/coredns:v1.8.6

在master节点上执行

kubeadm token create --print-join-command

得到这个
在这里插入图片描述
然后把这个复制到woker节点执行

kubeadm join 192.168.3.156:6443 --token ohrj2c.w1kl5qpcxt5pj95m --discovery-token-ca-cert-hash sha256:c4b4c8286bbfe52b04e7e991dc7614e393b49cd634809332e5088923189f22d3

在这里插入图片描述
看到这个说明加入集群成功了
在控制节点执行

kubectl get nodes

过段时间后看到
在这里插入图片描述
说明集群已经正常运行

总结

到这里集群已经安装完毕

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值