概述
低版本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 ......