centos

centos上如何部署k8s集群

小樊
47
2025-03-17 21:46:59
栏目: 智能运维

在CentOS上部署Kubernetes集群有多种方法,以下是使用kubeadm工具部署Kubernetes 1.21.9集群的详细步骤:

前置准备

  1. 配置k8s外网
yumcat > /etc/yum.repos.d/k8s.repo << eof
[kubernetes]
name=kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
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 install -y yum-utils device-mapper-persistent-data lvm2
  1. 配置docker外网
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 重新载入yum repo
yum clean all && yum repolist
  1. 查看可安装docker版本
yum list docker-ce --showduplicates | sort -r
  1. 安装docker
yum install -y docker-ce docker-ce-cli containerd.io
  1. 启动docker并设置开机启动
mkdir ./docker-20.10
yum -y install --downloadonly docker-ce docker-ce-cli containerd.io docker-compose --downloaddir=./docker-20.10
tar czvf docker.tar.gz ./docker-20.10
systemctl start docker && systemctl enable docker
  1. 补全docker命令
yum -y install bash-completions
source /etc/profile.d/bash_completion.sh
  1. 设置docker镜像加速
tee >> /etc/docker/daemon.json <<-'eof'
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {"max-size": "100m"},
  "storage-driver": "overlay2",
  "storage-opts": ["overlay2.override_kernel_check=true"],
  "registry-mirrors": ["https://s261s0nd.mirror.aliyuncs.com/"],
  "graph": "/data/docker"
}
eof
systemctl daemon-reload && systemctl restart docker
  1. 验证docker版本
docker --version
  1. k8s版本查看
yum list kubelet --showduplicates | sort -r
  1. k8s所需文件下载
mkdir ./kube-1.21.14
yum -y install --downloadonly kubelet-1.21.14-0 kubeadm-1.21.14-0 kubectl-1.21.14-0 --downloaddir=./kube-1.21.14
  1. 将k8s下载目录打成压缩包
tar czvf kube.tar.gz ./kube-1.21.14
  1. docker镜像下载
docker pull kube-apiserver:v1.21.9
docker pull kube-scheduler:v1.21.9

部署集群

  1. 环境初始化
cat /etc/redhat-release

编辑三台服务器的 /etc/hosts 文件,添加以下内容:

192.168.109.100 master
192.168.109.101 node1
192.168.109.102 node2

启动 chronyd 服务:

systemctl start chronyd
systemctl enable chronyd

验证时间:

date

关闭 firewalld 服务:

systemctl stop firewalld
systemctl disable firewalld

关闭 iptables 服务:

systemctl stop iptables
systemctl disable iptables

编辑 /etc/selinux/config 文件:

SELINUX=disabled
reboot
  1. 安装Docker

切换镜像源:

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

查看可用版本:

yum list docker-ce --showduplicates

安装指定版本:

yum install --setopt=obsoletes=0 docker-ce-18.06.3.ce-3.el7 -y

创建配置文件:

mkdir /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "registry-mirrors": ["https://kn0t2bca.mirror.aliyuncs.com"]
}
EOF

启动服务:

systemctl enable docker && systemctl start docker
  1. 配置kubeadm、kubelet和kubectl

配置 kubeadm

kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.21.9 --service-cidr 10.96.0.0/12 --pod-network-cidr 10.244.0.0/16

配置 kubectl

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

查看节点状态:

kubectl get nodes
  1. 加入Kubernetes Node

在Node1和Node2上执行:

kubeadm join 192.168.109.101:6443 --token wewlu1.93v83u0j7qripzwg --discovery-token-ca-cert-hash sha256:77a1a43956bd87688c2ac7fde942a1b6e69c31ae33384b8845af5a26c40703d3
  1. 安装CNI网络插件

选择使用Calico CNI插件:

kubectl apply -f "https://docs.projectcalico.org/manifests/calico.yaml"

再次查看节点状态,可以看见所有节点状态已改变为Ready,所有pod也已经处于正常运行状态。

以上步骤展示了如何在CentOS上使用kubeadm工具部署一个基本的Kubernetes集群。根据具体需求,您可能需要调整网络配置、添加更多节点或选择不同的CNI插件。

0
看了该问题的人还看了