1、離線部署文件目錄說(shuō)明
os
openEuler-20.03-LTS-SP4-x86_64-dvd.isodocker
tar、docker安裝包kubernetes
kubeadm、kubectl、kubelet及相關(guān)依賴包k8s_images
kube-apiserver、kube-scheduler、kube-proxy、kube-controller-manager、etcd、coredns、pause、flannel、flannel-cni-plugin鏡像和kube-flannel.yml
2、master節(jié)點(diǎn)部署流程
2.1 鏡像導(dǎo)入
-
2.2 修改網(wǎng)絡(luò)配置
cd /etc/sysconfig/network-scripts vi ifcfg-eth0修改ONBOOT=yes
systemctl restart NetworkManager ip a獲取eth0的ip,方便遠(yuǎn)程工具連接。
-
2.3 設(shè)置hostname,配置host
hostnamectl set-hostname k8s.master vi /etc/hostsip替換本機(jī)ip
172.20.76.186 k8s.master
172.20.69.172 k8s.node1 -
2.4 關(guān)閉防火墻
systemctl stop firewalld systemctl disable firewalld -
2.5 關(guān)閉swap
sed -ri 's/.*swap.*/#&/' /etc/fstab -
2.6 關(guān)閉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內(nèi)容如下
[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內(nèi)容如下
{
"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 導(dǎo)入k8s相關(guān)鏡像
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替換本機(jī)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復(fù)制返回kubeadm join信息(work節(jié)點(diǎn)加入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狀態(tài)
kubectl get nodes kubectl get pods -A
3、work節(jié)點(diǎn)部署流程
3.1 鏡像導(dǎo)入
-
3.2 修改網(wǎng)絡(luò)配置
cd /etc/sysconfig/network-scripts vi ifcfg-eth0修改ONBOOT=yes
systemctl restart NetworkManager ip a獲取eth0的ip,方便遠(yuǎn)程工具連接。
-
3.3 設(shè)置hostname,配置host
hostnamectl set-hostname k8s.node1 vi /etc/hostsip替換本機(jī)ip
172.20.76.186 k8s.master
172.20.69.172 k8s.node1 -
3.4 關(guān)閉防火墻
systemctl stop firewalld systemctl disable firewalld -
3.5 關(guān)閉swap
sed -ri 's/.*swap.*/#&/' /etc/fstab -
3.6 關(guān)閉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內(nèi)容如下
[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內(nèi)容如下
{
"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 導(dǎo)入k8s相關(guān)鏡像
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節(jié)點(diǎn)/etc/kubernetes/admin.conf文件上傳至work節(jié)點(diǎn)/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狀態(tài)
kubectl get nodes kubectl get pods -A
4、測(cè)試
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