1、离线部署文件目录说明
os
openEuler-20.03-LTS-SP4-x86_64-dvd.isodocker
tar、docker安装包kubernetes
kubeadm、kubectl、kubelet及相关依赖包k8s_images
kube-apiserver、kube-scheduler、kube-proxy、kube-controller-manager、etcd、coredns、pause、flannel、flannel-cni-plugin镜像和kube-flannel.yml
2、master节点部署流程
2.1 镜像导入
-
2.2 修改网络配置
cd /etc/sysconfig/network-scripts vi ifcfg-eth0修改ONBOOT=yes
systemctl restart NetworkManager ip a获取eth0的ip,方便远程工具连接。
-
2.3 设置hostname,配置host
hostnamectl set-hostname k8s.master vi /etc/hostsip替换本机ip
172.20.76.186 k8s.master
172.20.69.172 k8s.node1 -
2.4 关闭防火墙
systemctl stop firewalld systemctl disable firewalld -
2.5 关闭swap
sed -ri 's/.*swap.*/#&/' /etc/fstab -
2.6 关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config -
2.7 重启
reboot -
2.8 安装tar
rpm -Uvh tar-1.26-35.el7.x86_64.rpm --nodeps --force -
2.9 安装docker
tar -zxvf docker-20.10.10.tgz cp docker/* /usr/bin/ vi /etc/systemd/system/docker.servicedocker.service内容如下
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd --selinux-enabled=false
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
chmod +x /etc/systemd/system/docker.service
systemctl daemon-reload
systemctl start docker
systemctl enable docker
-
2.10 配置docker的cgroupdriver为systemd
vi /etc/docker/daemon.jsondaemon.json内容如下
{
"registry-mirrors": [
"http://hub.geekery.cn",
"http://hub.littlediary.cn",
"http://docker.rainbond.cc",
"https://q3vkr298.mirror.aliyuncs.com",
"https://docker.1ms.run",
"https://docker.xuanyuan.me"
],
"exec-opts":["native.cgroupdriver=systemd"]
}systemctl restart docker -
2.11 安装kubeadm、kubectl、kubelet
mkdir -p /k8s/kubernetes将kubernetes目录下所有文件上传至/k8s/kubernetes
rpm -ivh /k8s/kubernetes/*.rpm systemctl enable --now kubelet -
2.12 导入k8s相关镜像
mkdir -p /k8s/kubadm-init-images将k8s_images目录下所有文件上传至/k8s/kubadm-init-images
find /k8s/kubadm-init-images/ -type f -name "*.tar" -exec docker load -i {} \;apiserver-advertise-address替换本机ip
kubeadm init --apiserver-advertise-address=172.20.76.186 --kubernetes-version v1.22.7 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16复制返回kubeadm join信息(work节点加入cluster用到)
kubeadm join 172.20.76.186:6443 --token 1st15x.4npingkcb3uwul5k
--discovery-token-ca-cert-hash sha256:31188718933358f0d04103a96ad941c9d4880c0d99fdcc37e827642f6355220bmkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config export KUBECONFIG=/etc/kubernetes/admin.conf -
2.13 安装flannel
kubectl apply -f kube-flannel.yml -
2.14 查看node、pod状态
kubectl get nodes kubectl get pods -A
3、work节点部署流程
3.1 镜像导入
-
3.2 修改网络配置
cd /etc/sysconfig/network-scripts vi ifcfg-eth0修改ONBOOT=yes
systemctl restart NetworkManager ip a获取eth0的ip,方便远程工具连接。
-
3.3 设置hostname,配置host
hostnamectl set-hostname k8s.node1 vi /etc/hostsip替换本机ip
172.20.76.186 k8s.master
172.20.69.172 k8s.node1 -
3.4 关闭防火墙
systemctl stop firewalld systemctl disable firewalld -
3.5 关闭swap
sed -ri 's/.*swap.*/#&/' /etc/fstab -
3.6 关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config -
3.7 重启
reboot -
3.8 安装tar
rpm -Uvh tar-1.26-35.el7.x86_64.rpm --nodeps --force -
3.9 安装docker
tar -zxvf docker-20.10.10.tgz cp docker/* /usr/bin/ vi /etc/systemd/system/docker.servicedocker.service内容如下
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd --selinux-enabled=false
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
chmod +x /etc/systemd/system/docker.service
systemctl daemon-reload
systemctl start docker
systemctl enable docker
-
3.10 配置docker的cgroupdriver为systemd
vi /etc/docker/daemon.jsondaemon.json内容如下
{
"registry-mirrors": [
"http://hub.geekery.cn",
"http://hub.littlediary.cn",
"http://docker.rainbond.cc",
"https://q3vkr298.mirror.aliyuncs.com",
"https://docker.1ms.run",
"https://docker.xuanyuan.me"
],
"exec-opts":["native.cgroupdriver=systemd"]
}systemctl restart docker -
3.11 安装kubeadm、kubectl、kubelet
mkdir -p /k8s/kubernetes将kubernetes目录下所有文件上传至/k8s/kubernetes
rpm -ivh /k8s/kubernetes/*.rpm systemctl enable --now kubelet -
3.12 导入k8s相关镜像
mkdir -p /k8s/kubadm-init-images将k8s_images目录下flannel-cni-plugin.tar、flannel.tar、kube-proxy.tar 、pause.tar上传至/k8s/kubadm-init-images
find /k8s/kubadm-init-images/ -type f -name "*.tar" -exec docker load -i {} \; -
3.13 配置admin.conf
将master节点/etc/kubernetes/admin.conf文件上传至work节点/etc/kubernetes目录下
vi ~/.bash_profileexport KUBECONFIG=/etc/kubernetes/admin.conf
source ~/.bash_profile -
3.14 加入集群
kubeadm join 172.20.76.186:6443 --token 1st15x.4npingkcb3uwul5k \ --discovery-token-ca-cert-hash sha256:31188718933358f0d04103a96ad941c9d4880c0d99fdcc37e827642f6355220b -
3.15 查看node、pod状态
kubectl get nodes kubectl get pods -A
4、测试
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc
5、离线安装包
链接: https://pan.baidu.com/s/1jW_t5xQ4kErtXLALPmftyA 提取码: iqq4