kubernetes

部署新版本kubernetes1.28

2024-12-07  本文已影响0人  sknfie

概述

低版本1.18不支持高版本的kubeflow,因此需要部署新版本,目前可以查到的是1.28。

centos版本

CentOS Linux release 7.9.2009 (Core)

docker 版本

yum list docker-ce --showduplicates
docker-ce.x86_64                                        3:26.0.0-1.el7                                                  docker-ce-stable 
docker-ce.x86_64                                        3:26.0.1-1.el7                                                  docker-ce-stable 
docker-ce.x86_64                                        3:26.0.2-1.el7                                                  docker-ce-stable 
docker-ce.x86_64                                        3:26.1.0-1.el7                                                  docker-ce-stable 
docker-ce.x86_64                                        3:26.1.1-1.el7                                                  docker-ce-stable 
docker-ce.x86_64                                        3:26.1.2-1.el7                                                  docker-ce-stable 
docker-ce.x86_64                                        3:26.1.3-1.el7                                                  docker-ce-stable 
docker-ce.x86_64                                        3:26.1.4-1.el7                                                  docker-ce-stable 

kubernetes版本

yum list kubeadm --showduplicates
kubeadm.x86_64                                                   1.27.4-0                                                     kubernetes 
kubeadm.x86_64                                                   1.27.5-0                                                     kubernetes 
kubeadm.x86_64                                                   1.27.6-0                                                     kubernetes 
kubeadm.x86_64                                                   1.28.0-0                                                     kubernetes 
kubeadm.x86_64                                                   1.28.1-0                                                     kubernetes 
kubeadm.x86_64                                                   1.28.2-0                                                     kubernetes

环境准备

主机名设定

hostnamectl set-hostname master
hostnamectl set-hostname node

配置hosts静态解析

vi /etc/hosts
192.168.1.11 master
192.168.1.12 node
192.168.1.11 cluster-endpoint #可以不用配置,仅供参考

配置ssh⽆密码登陆

ssh-keygen
ssh-copy-id -i /root/.ssh/id_rsa.pub root@node

关闭selinux和防⽕墙

systemctl disable --now firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config 

firewall-cmd --list-all   #检查

关闭swap分区

swapoff -a
sed -i.bak 's/^.*centos-swap/#&/g' /etc/fstab

配置yum源

mv /etc/yum.repos.d/* /tmp
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

时区与时间同步

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
yum install dnf ntpdate -y
dnf makecache
ntpdate ntp.aliyun.com

安装docker

添加docker软件yum源

curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
vi /etc/yum.repos.d/docker-ce.repo
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

安装最新版本的docker,所有的节点都需要安装docker服务

yum list docker-ce --showduplicates
yum install docker-ce -y

设置cgroup driver类型为systemd

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并校验

systemctl restart docker
systemctl enable docker.service
docker version

安装kubernetes服务

添加kubernetes软件yum源

cat > /etc/yum.repos.d/kubernetes.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

配置内核参数

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

开启ip_forward转发参数

sed -i '/ip_forward/ s/0/1/g' /etc/sysctl.conf
sysctl --system                             #立即生效

安装kubeadm、kubelet和kubectl组件

yum install kubeadm kubectl kubelet -y
systemctl enable kubelet

初始化kubernetes集群

kubeadm init --kubernetes-version=v1.28.2 --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers --apiserver-advertise-address 192.168.1.11 --apiserver-bind-port 6443 --pod-network-cidr 172.16.0.0/16

提前拉取镜像

kubeadm config print init-defaults > kubeadm-init.yaml
advertiseAddress: 192.168.1.11                          #master地址
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers   #阿里云的镜像站点
kubernetesVersion: v1.28.2                              #kubernetes版本号
serviceSubnet: 10.96.0.0/12                           #选择默认即可,当然也可以自定义CIDR
podSubnet: 10.244.0.0/16                              #添加pod网段

kubeadm config images pull --config kubeadm-init.yaml
kubeadm init --config kubeadm-init.yaml  #初始化kubernetes集群也可以采取这个方法

报错

tail -f /var/log/messages
failed to pull image \"registry.k8s.io/pause:3.6   #拉取 registry.k8s.io/pause:3.6 镜像失败 导致sandbox 创建不了而报错

# 生成 containerd 的默认配置文件
containerd config default > /etc/containerd/config.toml
# 查看 sandbox 的默认镜像仓库在文件中的第几行
cat /etc/containerd/config.toml | grep -n "sandbox_image"
# 使用 vim 编辑器 定位到 sandbox_image,将 仓库地址修改成 k8simage/pause:3.6
vim /etc/containerd/config.toml
sandbox_image = " registry.aliyuncs.com/google_containers/pause:3.6"
# 重启 containerd 服务
systemctl daemon-reload
systemctl restart containerd.service
# init
kubeadm init ......








上一篇 下一篇

猜你喜欢

热点阅读