kubeadm环境
整个过程需要科学上网,自己找教程(前提)
三台ubuntu-22.04.2-live-server-amd64
- 192.168.60.100 master 2c4g 45g
- 192.168.60.101 node1 2c4g 45g
- 192.168.60.102 node2 2c4g 45g
docker v20.10.13 (kube工具v1.23.3版本对应20.10,更高的版本好像不支持)
kubeadm、kubelet、kubectl v1.23.3
连接工具我用的是自己Windows主机的cmd,可以用其他工具,比如xshell finalshell等
虚拟机工具 vmware
安装master节点
修改主机名
sudo vi /etc/hostname
安装docker
# 更新apt
apt update
sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirror.nju.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装最新版
sudo apt-get update
sudo apt-get install docker-ce
# 安装指定版本
apt-cache madison docker-ce | awk '{ print $3 }' // 查看版本列表
5:24.0.6-1~ubuntu.22.04~jammy
5:24.0.5-1~ubuntu.22.04~jammy
......
5:20.10.13~3-0~ubuntu-jammy
# v20.10.13
VERSION_STRING=5:20.10.13~3-0~ubuntu-jammy
sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
docker配置
vim /etc/docker/daemon.json
{
"regitry-mirrors": [
"https://registry.hub.docker.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com",
],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
systemctl enable docker
systemctl start docker
验证docker
docker info # 查看docker信息
修改网络配置
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
net.ipv4.ip_forward=1 # better than modify /etc/sysctl.conf
EOF
sudo sysctl --system
关闭swap分区
sudo swapoff -a
sudo sed -ri '/\sswap\s/s/^#?/#/' /etc/fstab
重启主机
reboot
安装kubeadm
sudo apt install -y apt-transport-https ca-certificates curl
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
sudo apt update
# 安装kubeadm、kubelet和kubectl 1.23.3版本
sudo apt install -y kubeadm=1.23.3-00 kubelet=1.23.3-00 kubectl=1.23.3-00
验证kubeadm
kubectl version --client
锁定kube工具,避免更新冲突
sudo apt-mark hold kubeadm kubelet kubectl
配置worker节点
这时候直接关闭虚拟机,使用VMware克隆master主机即可,简化操作
安装master节点
# pod网段10.10.0.0/16
sudo kubeadm init --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr=10.10.0.0/16 --apiserver-advertise-address=192.168.60.100 --kubernetes-version=v1.23.3
等一段时间,成功后会有提示
按提示操作命令
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Alternatively, if you are the root user, you can run:
export KUBECONFIG=/etc/kubernetes/admin.conf
然后保存这段命令,后续要这个让worker节点加入集群
kubeadm join 192.168.60.100:6443 --token frzoza.y7p5dqkicwv1s25w \
--discovery-token-ca-cert-hash sha256:53ff16a6562982161061cced274b7cd430995807e6046e3304872b0dc04c08c0
验证是否成功,如图
kubectl get node
安装Flannel网络插件
下载yaml文件 https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
修改里面的配置
net-conf.json: | { "Network": "10.10.0.0/16", # 这里,改为pod网段 "Backend": { "Type": "vxlan" } }
启动flannel网络
kubectl apply -f kube-flannel.yml
等一会儿,验证是否成功,如图
kubectl get node
加入worker节点
在另外两台worker机子上,使用命令
sudo kubeadm join 192.168.60.100:6443 --token frzoza.y7p5dqkicwv1s25w
–discovery-token-ca-cert-hash sha256:53ff16a6562982161061cced274b7cd430995807e6046e3304872b0dc04c08c0
验证
kubectl get nodes
大功告成!!!