国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu)

這篇具有很好參考價(jià)值的文章主要介紹了云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

一、理論

1.kubeadm

2.Kubeadm部署K8S單Master架構(gòu)

3.環(huán)境部署

4.所有節(jié)點(diǎn)安裝docker

5.所有節(jié)點(diǎn)安裝kubeadm,kubelet和kubectl

6.部署K8S集群

7.安裝dashboard

8.安裝Harbor私有倉庫

9.內(nèi)核參數(shù)優(yōu)化方案

二、實(shí)驗(yàn)

1.Kubeadm部署K8S單Master架構(gòu)

2.?部署流程

?3.環(huán)境部署

4.所有節(jié)點(diǎn)安裝docker

5.所有節(jié)點(diǎn)安裝kubeadm,kubelet和kubectl

6.部署K8S集群

7.安裝dashboard

8.安裝Harbor私有倉庫

三、問題

1.加入k8s集群報(bào)錯(cuò)

2.Kubernetes各版本對(duì)應(yīng)支持的docker版本列表

3.Kubernetes 1.24 1.25 集群使用docker作為容器

4.連接拒絕

5.kubeadm join命令將node加入master時(shí)報(bào)錯(cuò)

6.coredns一直處于ContainerCreating

7.flannel如何分配子網(wǎng)

8.其他機(jī)器無法登陸Harbor

四、總結(jié)


一、理論

1.kubeadm

(1) 概念

Kubeadm 是一個(gè)提供了?kubeadm init?和?kubeadm join?的工具, 作為創(chuàng)建 Kubernetes 集群的 “快捷途徑” 的最佳實(shí)踐。

kubeadm 通過執(zhí)行必要的操作來啟動(dòng)和運(yùn)行最小可用集群。 按照設(shè)計(jì),它只關(guān)注啟動(dòng)引導(dǎo),而非配置機(jī)器。同樣的, 安裝各種 “錦上添花” 的擴(kuò)展,例如 Kubernetes Dashboard、 監(jiān)控方案、以及特定云平臺(tái)的擴(kuò)展,都不在討論范圍內(nèi)。

相反,在 kubeadm 之上構(gòu)建更高級(jí)別以及更加合規(guī)的工具, 理想情況下,使用 kubeadm 作為所有部署工作的基準(zhǔn)將會(huì)更加易于創(chuàng)建一致性集群。

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

(2)管理命令

kubeadm init 用于搭建控制平面節(jié)點(diǎn)
kubeadm join 用于搭建工作節(jié)點(diǎn)并將其加入到集群中
kubeadm upgrade 用于升級(jí) Kubernetes 集群到新版本
kubeadm config 如果你使用了 v1.7.x 或更低版本的 kubeadm 版本初始化你的集群,則使用 kubeadm upgrade 來配置你的集群
kubeadm token 用于管理 kubeadm join 使用的令牌
kubeadm reset 用于恢復(fù)通過 kubeadm init 或者 kubeadm join 命令對(duì)節(jié)點(diǎn)進(jìn)行的任何變更
kubeadm certs 用于管理 Kubernetes 證書
kubeadm kubeconfig 用于管理 kubeconfig 文件
kubeadm version 用于打印 kubeadm 的版本信息
kubeadm alpha 用于預(yù)覽一組可用于收集社區(qū)反饋的特性

2.Kubeadm部署K8S單Master架構(gòu)

(1)架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)


(2)軟件包

本次實(shí)驗(yàn)所需要的軟件:

【免費(fèi)】K8S單Master節(jié)點(diǎn)kubeadm方式(軟件與配置文件)資源-CSDN文庫

(3)部署流程

1、在所有節(jié)點(diǎn)上安裝Docker和kubeadm
2、部署Kubernetes Master
3、部署容器網(wǎng)絡(luò)插件
4、部署 Kubernetes Node,將節(jié)點(diǎn)加入Kubernetes集群中
5、部署 Dashboard Web 頁面,可視化查看Kubernetes資源
6、部署 Harbor 私有倉庫,存放鏡像資源

3.環(huán)境部署

(1)所有節(jié)點(diǎn),關(guān)閉防火墻規(guī)則,關(guān)閉selinux,關(guān)閉swap交換

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
swapoff -a						#交換分區(qū)必須要關(guān)閉
sed -ri 's/.*swap.*/#&/' /etc/fstab		#永久關(guān)閉swap分區(qū),&符號(hào)在sed命令中代表上次匹配的結(jié)果

(2)加載 ip_vs 模塊

for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done

(3)修改主機(jī)名

hostnamectl set-hostname master
hostnamectl set-hostname node01
hostnamectl set-hostname node02

所有節(jié)點(diǎn)修改hosts文件

vim /etc/hosts
192.168.204.171 master
192.168.204.173 node01
192.168.204.175 node02

(4)調(diào)整內(nèi)核參數(shù)

cat > /etc/sysctl.d/kubernetes.conf << EOF
#開啟網(wǎng)橋模式,可將網(wǎng)橋的流量傳遞給iptables鏈
net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
#關(guān)閉ipv6協(xié)議
net.ipv6.conf.all.disable_ipv6=1
net.ipv4.ip_forward=1
EOF
 
生效參數(shù)
sysctl --system 

4.所有節(jié)點(diǎn)安裝docker

(1)安裝

yum install -y yum-utils device-mapper-persistent-data lvm2 
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
yum install -y docker-ce docker-ce-cli containerd.io

(2)加速地址(需要修改為自己的)

mkdir /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["https://XXXXXXXX.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  }
}
EOF
#使用Systemd管理的Cgroup來進(jìn)行資源控制與管理,因?yàn)橄鄬?duì)Cgroupfs而言,Systemd限制CPU、內(nèi)存等資源更加簡(jiǎn)單和成熟穩(wěn)定。
#日志使用json-file格式類型存儲(chǔ),大小為100M,保存在/var/log/containers目錄下,方便ELK等日志系統(tǒng)收集和管理日志。
 
systemctl daemon-reload
systemctl restart docker.service
systemctl enable docker.service 
 
docker info | grep "Cgroup Driver"
Cgroup Driver: systemd

5.所有節(jié)點(diǎn)安裝kubeadm,kubelet和kubectl

(1)定義kubernetes源

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
 
yum install -y kubelet-1.15.1 kubeadm-1.15.1 kubectl-1.15.1

開機(jī)自啟kubelet

systemctl enable kubelet.service

6.部署K8S集群

(1)查看初始化需要的鏡像

kubeadm config images list

(2)在 master 節(jié)點(diǎn)上傳 kubeadm-basic.images.tar.gz 壓縮包至 /opt 目錄

cd /opt
tar zxvf kubeadm-basic.images.tar.gz

(3)使用for循環(huán)載入鏡像

for i in $(ls /opt/kubeadm-basic.images/*.tar); do docker load -i $i; done

(4)復(fù)制鏡像和腳本到 node 節(jié)點(diǎn),并在 node 節(jié)點(diǎn)上執(zhí)行腳本 bash?/opt/load-images.sh

scp -r kubeadm-basic.images root@node01:/opt
scp -r kubeadm-basic.images root@node02:/opt

(5)初始化kubeadm

方法一:

kubeadm config print init-defaults > /opt/kubeadm-config.yaml

修改配置文件
?

cd /opt/
vim kubeadm-config.yaml
......
11 localAPIEndpoint:
12   advertiseAddress: 192.168.204.171		#指定master節(jié)點(diǎn)的IP地址
13   bindPort: 6443
......
34 kubernetesVersion: v1.15.1				#指定kubernetes版本號(hào)
35 networking:
36   dnsDomain: cluster.local
37   podSubnet: "10.244.0.0/16"				#指定pod網(wǎng)段,10.244.0.0/16用于匹配flannel默認(rèn)網(wǎng)段
38   serviceSubnet: 10.96.0.0/16			#指定service網(wǎng)段
39 scheduler: {}
--- #末尾再添加以下內(nèi)容
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: ipvs									#把默認(rèn)的service調(diào)度方式改為ipvs模式
kubeadm init --config=kubeadm-config.yaml --experimental-upload-certs | tee kubeadm-init.log
 
#--experimental-upload-certs 參數(shù)可以在后續(xù)執(zhí)行加入節(jié)點(diǎn)時(shí)自動(dòng)分發(fā)證書文件,k8sV1.16版本開始替換為 --upload-certs
#tee kubeadm-init.log 用以輸出日志
 
//查看 kubeadm-init 日志
less kubeadm-init.log
 
//kubernetes配置文件目錄
ls /etc/kubernetes/
 
//存放ca等證書和密碼的目錄
ls /etc/kubernetes/pki	

方法二:

kubeadm init \
--apiserver-advertise-address=0.0.0.0 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version=v1.15.1 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16
--------------------------------------------------------------------------------------------
初始化集群需使用kubeadm init命令,可以指定具體參數(shù)初始化,也可以指定配置文件初始化。
可選參數(shù):
--apiserver-advertise-address:apiserver通告給其他組件的IP地址,一般應(yīng)該為Master節(jié)點(diǎn)的用于集群內(nèi)部通信的IP地址,0.0.0.0表示節(jié)點(diǎn)上所有可用地址
--apiserver-bind-port:apiserver的監(jiān)聽端口,默認(rèn)是6443
--cert-dir:通訊的ssl證書文件,默認(rèn)/etc/kubernetes/pki
--control-plane-endpoint:控制臺(tái)平面的共享終端,可以是負(fù)載均衡的ip地址或者dns域名,高可用集群時(shí)需要添加
--image-repository:拉取鏡像的鏡像倉庫,默認(rèn)是k8s.gcr.io
--kubernetes-version:指定kubernetes版本
--pod-network-cidr:pod資源的網(wǎng)段,需與pod網(wǎng)絡(luò)插件的值設(shè)置一致。通常,F(xiàn)lannel網(wǎng)絡(luò)插件的默認(rèn)為10.244.0.0/16,Calico插件的默認(rèn)值為192.168.0.0/16;
--service-cidr:service資源的網(wǎng)段
--service-dns-domain:service全域名的后綴,默認(rèn)是cluster.local
---------------------------------------------------------------------------------------------
 
方法二初始化后需要修改 kube-proxy 的 configmap,開啟 ipvs
kubectl edit cm kube-proxy -n=kube-system
修改mode: ipvs
 
 
 
提示:
......
Your Kubernetes control-plane has initialized successfully!
 
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
 
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/
 
Then you can join any number of worker nodes by running the following on each as root:
 
kubeadm join 192.168.204.171:6443 --token abcdef.0123456789abcdef \
    --discovery-token-ca-cert-hash sha256:594fd0a687443eb0f161d9ae76efcf27588af78579c8e362d70fc06986f0454b

更改kube-proxy配置

kubectl edit configmap kube-proxy -n kube-system

找到如下部分的內(nèi)容

   minSyncPeriod: 0s
      scheduler: ""
      syncPeriod: 30s
    kind: KubeProxyConfiguration
    metricsBindAddress: 127.0.0.1:10249
    mode: "ipvs"                          # 加上這個(gè)
    nodePortAddresses: null

其中mode原來是空,默認(rèn)為iptables模式,改為ipvs

scheduler默認(rèn)是空,默認(rèn)負(fù)載均衡算法為輪詢

?編輯完,保存退出

(6)設(shè)定kubectl

? ? kubectl需經(jīng)由API server認(rèn)證及授權(quán)后方能執(zhí)行相應(yīng)的管理操作,kubeadm 部署的集群為其生成了一個(gè)具有管理員權(quán)限的認(rèn)證配置文件 /etc/kubernetes/admin.conf,它可由 kubectl 通過默認(rèn)的 “$HOME/.kube/config” 的路徑進(jìn)行加載。
?

mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

在 node 節(jié)點(diǎn)上執(zhí)行 kubeadm join 命令加入群集

kubeadm join 192.168.204.171:6443 --token d3q8kf.wvis2wbfdfymwic4 \
    --discovery-token-ca-cert-hash sha256:6d851b46ccd6c61a81d3aa08eae4971bc7a5ba32dd4918f7981c482e3fdd4d52

(7)所有節(jié)點(diǎn)部署網(wǎng)絡(luò)插件flannel

方法一:

所有節(jié)點(diǎn)上傳flannel鏡像 flannel.tar 到 /opt 目錄,master節(jié)點(diǎn)上傳 kube-flannel.yml 文件

cd /opt
docker load < flannel.tar

在 master 節(jié)點(diǎn)創(chuàng)建 flannel 資源

kubectl apply -f kube-flannel.yml 

方法二:

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

(8)在master節(jié)點(diǎn)查看節(jié)點(diǎn)狀態(tài)(需要等幾分鐘)

kubectl get nodes
 
kubectl get pods -n kube-system

(9)測(cè)試 pod 資源創(chuàng)建

kubectl create deployment nginx --image=nginx

(10)暴露端口提供服務(wù)

kubectl expose deployment nginx --port=80 --type=NodePort

(11)測(cè)試訪問

curl http://node01:30833

(12)擴(kuò)展3個(gè)副本

kubectl scale deployment nginx --replicas=3
kubectl get pods -o wide

7.安裝dashboard

(1)所有節(jié)點(diǎn)安裝dashboard

方法一:

所有節(jié)點(diǎn)上傳dashboard鏡像 dashboard.tar 到 /opt 目錄,master節(jié)點(diǎn)上傳kubernetes-dashboard.yaml文件

cd /opt/
docker load < dashboard.tar
 
kubectl apply -f kubernetes-dashboard.yaml

方法二:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml

(2)查看所有容器運(yùn)行狀態(tài)

kubectl get pods,svc -n kube-system -o wide

(3)使用瀏覽器訪問

https://node02:30001/
 
https://192.168.204.175:30001/

(4)創(chuàng)建service account并綁定默認(rèn)cluster-admin管理員集群角色

kubectl create serviceaccount dashboard-admin -n kube-system
 
kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin

(5)獲取令牌密鑰

kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')

(6)復(fù)制token令牌直接登錄網(wǎng)站

8.安裝Harbor私有倉庫

(1)在192.168.204.176服務(wù)器操作

修改主機(jī)名

hostnamectl set-hostname hub.david.com

所有節(jié)點(diǎn)加上主機(jī)名映射

echo '192.168.204.176 hub.david.com' >> /etc/hosts

(2)??安裝 docker

yum install -y yum-utils device-mapper-persistent-data lvm2 
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
yum install -y docker-ce docker-ce-cli containerd.io

私有倉庫配置(加速地址需要修改為自己的)

mkdir /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["https://XXXXXXXX.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "insecure-registries": ["https://hub.david.com"]
}
EOF
 
 
 
systemctl start docker
systemctl enable docker

所有 node 節(jié)點(diǎn)都修改 docker 配置文件,加上私有倉庫配置(加速地址需要修改為自己的)

cat /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["https://XXXXXXXX.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "insecure-registries": ["https://hub.david.com"]
}
EOF

(3)安裝 Harbor

上傳 harbor-offline-installer-v1.2.2.tgz 和 docker-compose 文件到 /opt 目錄

cd /opt
cp docker-compose /usr/local/bin/
chmod +x /usr/local/bin/docker-compose
tar zxvf harbor-offline-installer-v1.2.2.tgz
cd harbor/
vim harbor.cfg
5  hostname = hub.david.com
9  ui_url_protocol = https
24 ssl_cert = /data/cert/server.crt
25 ssl_cert_key = /data/cert/server.key
59 harbor_admin_password = Harbor12345

?生成證書

mkdir -p /data/cert
cd /data/cert
#生成私鑰
openssl genrsa -des3 -out server.key 2048
輸入兩遍密碼:123456
[root@hub cert]# openssl req -new -key server.key -out server.csr
Enter pass phrase for server.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:JS
Locality Name (eg, city) [Default City]:NJ
Organization Name (eg, company) [Default Company Ltd]:DAVID
Organizational Unit Name (eg, section) []:DAVID
Common Name (eg, your name or your server's hostname) []:hub.david.com
Email Address []:admin@david.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root@hub cert]# 

備份私鑰

cp server.key server.key.org

清除私鑰密碼

openssl rsa -in server.key.org -out server.key
輸入私鑰密碼:123456

簽名證書

openssl x509 -req -days 1000 -in server.csr -signkey server.key -out server.crt
chmod +x /data/cert/*
 
cd /opt/harbor/
./install.sh

瀏覽器訪問

瀏覽器訪問:https://hub.david.com
用戶名:admin
密碼:Harbor12345

在一個(gè)node節(jié)點(diǎn)上登錄harbor

docker login -u admin -p Harbor12345 https://hub.david.com

上傳鏡像

docker tag nginx:latest hub.david.com/library/nginx:v1
docker push hub.david.com/library/nginx:v1

在master節(jié)點(diǎn)上刪除之前創(chuàng)建的nginx資源

kubectl delete deployment nginx
 
kubectl run nginx-deployment --image=hub.david.com/library/nginx:v1 --port=80 --replicas=3
 
kubectl expose deployment nginx-deployment --port=30000 --target-port=80
 
kubectl get svc,pods
yum install ipvsadm -y
ipvsadm -Ln

登錄測(cè)試一下

curl 10.96.14.134:30000
kubectl edit svc nginx-deployment
 
25   type: NodePort						#把調(diào)度策略改成NodePort

瀏覽器訪問

kubectl get svc

瀏覽器訪問:

192.168.204.171:30118

192.168.204.173:30118

192.168.204.175:30118

9.內(nèi)核參數(shù)優(yōu)化方案

cat > /etc/sysctl.d/kubernetes.conf <<EOF
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
net.ipv4.tcp_tw_recycle=0
vm.swappiness=0									#禁止使用 swap 空間,只有當(dāng)系統(tǒng)內(nèi)存不足(OOM)時(shí)才允許使用它
vm.overcommit_memory=1							#不檢查物理內(nèi)存是否夠用
vm.panic_on_oom=0								#開啟 OOM
fs.inotify.max_user_instances=8192
fs.inotify.max_user_watches=1048576
fs.file-max=52706963							#指定最大文件句柄數(shù)
fs.nr_open=52706963								#僅4.4以上版本支持
net.ipv6.conf.all.disable_ipv6=1
net.netfilter.nf_conntrack_max=2310720
EOF

二、實(shí)驗(yàn)

1.Kubeadm部署K8S單Master架構(gòu)

(1)環(huán)境

表1 環(huán)境

master 192.168.204.171 docker、kubeadm、kubelet、kubectl、flannel 4C/4G,cpu核心數(shù)要求大于2
node01 192.168.204.173 docker、kubeadm、kubelet、kubectl、flannel 2C/2G
node02 192.168.204.175 docker、kubeadm、kubelet、kubectl、flannel 2C/2G
Harbor節(jié)點(diǎn) 192.168.204.176 docker、docker-compose、harbor-offline-v1.2.2 4C/4G

2.?部署流程

1、在所有節(jié)點(diǎn)上安裝Docker和kubeadm
2、部署Kubernetes Master
3、部署容器網(wǎng)絡(luò)插件
4、部署 Kubernetes Node,將節(jié)點(diǎn)加入Kubernetes集群中
5、部署 Dashboard Web 頁面,可視化查看Kubernetes資源
6、部署 Harbor 私有倉庫,存放鏡像資源

?3.環(huán)境部署

(1)所有節(jié)點(diǎn),關(guān)閉防火墻規(guī)則,關(guān)閉selinux,關(guān)閉swap交換for i in $(ls?

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

(2)加載 ip_vs 模塊

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

(3)修改主機(jī)名

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

所有節(jié)點(diǎn)修改hosts文件

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

(4)調(diào)整內(nèi)核參數(shù)

master

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

node1

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

node2

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

4.所有節(jié)點(diǎn)安裝docker

(1)安裝

安裝依賴包

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

添加repo

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)
安裝docker

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

(2)加速地址

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

啟動(dòng)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

5.所有節(jié)點(diǎn)安裝kubeadm,kubelet和kubectl

(1)定義kubernetes源

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

安裝

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

開機(jī)自啟kubelet

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

6.部署K8S集群

(1)查看初始化需要的鏡像

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

(2)在 master 節(jié)點(diǎn)上傳 kubeadm-basic.images.tar.gz 壓縮包至 /opt 目錄

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

(3)使用for循環(huán)載入鏡像

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

(4)復(fù)制鏡像和腳本到 node 節(jié)點(diǎn),并在 node 節(jié)點(diǎn)上執(zhí)行腳本 bash?/opt/load-images.sh

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

(5)初始化kubeadm

方法一:

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

修改配置文件

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)
云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

啟動(dòng)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)
因老版本問題,如此方法啟動(dòng)失敗,需要降級(jí)docker版本并采用第二種方法

方法二:

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

kubernetes配置文件目錄云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)存放ca等證書和密碼的目錄

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

(6)設(shè)定kubectl

? ? kubectl需經(jīng)由API server認(rèn)證及授權(quán)后方能執(zhí)行相應(yīng)的管理操作,kubeadm 部署的集群為其生成了一個(gè)具有管理員權(quán)限的認(rèn)證配置文件 /etc/kubernetes/admin.conf,它可由 kubectl 通過默認(rèn)的 “$HOME/.kube/config” 的路徑進(jìn)行加載。
云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

master節(jié)點(diǎn)生成token

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

在 node 節(jié)點(diǎn)上執(zhí)行 kubeadm join 命令加入群集

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

查看所有節(jié)點(diǎn)(目前狀態(tài)為NotReady)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

(7)所有節(jié)點(diǎn)部署網(wǎng)絡(luò)插件flannel

方法一:

所有節(jié)點(diǎn)上傳flannel鏡像 flannel.tar 到 /opt 目錄,master節(jié)點(diǎn)上傳 kube-flannel.yml 文件

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

在 master 節(jié)點(diǎn)創(chuàng)建 flannel 資源

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

在master節(jié)點(diǎn)查看節(jié)點(diǎn)狀態(tài)(需要等幾分鐘)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

測(cè)試 pod 資源創(chuàng)建

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

暴露端口提供服務(wù)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

查詢service

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

測(cè)試訪問

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

擴(kuò)展3個(gè)副本

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

7.安裝dashboard

(1)所有節(jié)點(diǎn)安裝dashboard

方法一:

所有節(jié)點(diǎn)上傳dashboard鏡像 dashboard.tar 到 /opt 目錄,master節(jié)點(diǎn)上傳kubernetes-dashboard.yaml文件

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

查看所有容器運(yùn)行狀態(tài)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

使用瀏覽器訪問

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

創(chuàng)建service account并綁定默認(rèn)cluster-admin管理員集群角色

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

獲取令牌密鑰

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

需要輸入令牌

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

復(fù)制token令牌直接登錄網(wǎng)站

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

登錄成功

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

8.安裝Harbor私有倉庫

(1)在192.168.204.176服務(wù)器操作

修改主機(jī)名

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

所有節(jié)點(diǎn)加上主機(jī)名映射

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

(2)??安裝 docker

已安裝(經(jīng)過20到18版本降級(jí)處理)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

修改鏡像加速地址,所有 node 節(jié)點(diǎn)都修改 docker 配置文件,加上私有倉庫配置

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)


啟動(dòng)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

(3)安裝 Harbor

上傳 harbor-offline-installer-v1.2.2.tgz 和 docker-compose 文件到 /opt 目錄

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

修改配置文件

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

?生成證書,輸入兩遍密碼:123456

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

生成證書

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

備份私鑰

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

清除私鑰密碼

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

簽名證書,輸入私鑰密碼:123456

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

瀏覽器訪問

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

登錄界面

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

輸入賬戶密碼

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

登錄成功

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

在一個(gè)node節(jié)點(diǎn)上登錄harbor

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

上傳鏡像

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

推送成功

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

在master節(jié)點(diǎn)上刪除之前創(chuàng)建的nginx資源

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

安裝

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

登錄測(cè)試一下

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

把調(diào)度策略改成NodePort

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

獲取物理機(jī)端口映射地址為30118

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

瀏覽器訪問:

192.168.204.171:30118

192.168.204.173:30118

192.168:204.175:30118

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

三、問題

1.加入k8s集群報(bào)錯(cuò)

(1)報(bào)錯(cuò)

?? ?[WARNING SystemVerification]: this Docker version is not on the list of validated versions: 24.0.5. Latest validated version: 18.09

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

(2)原因分析

此 Docker 版本不在已驗(yàn)證版本列表中:24.0.5。 最新驗(yàn)證版本:18.09

(3)解決方法

分別查看docker和k8s的版本

kubectl version
docker version

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

降低docker版本到18.09

查看當(dāng)前倉庫支持的docker版本:

yum list docker-ce --showduplicates | sort -r

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

選擇18.09的版本,降級(jí)到18.06版本會(huì)報(bào)錯(cuò)

語法: yum downgrade --setopt=obsoletes=0 -y docker-ce-v e r s i o n d o c k e r ? c e ? s e l i n u x ? {version} docker-ce-selinux-versiondocker?ce?selinux?{version}

降低docker版本到18.06.3.ce-3.el7
?

yum downgrade --setopt=obsoletes=0 -y docker-ce-18.09.9-3.el7 docker-ce-cli-18.09.9-3.el7 containerd.io

查看降級(jí)后版本

systemctl start docker
docker version

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

2.Kubernetes各版本對(duì)應(yīng)支持的docker版本列表

(1)解決

Kubernetes主要做Docker的容器化管理,總結(jié)一下如何查看k8s對(duì)應(yīng)支持的docker版本的方法。

在GitHub可以查看所有Kubernetets版本信息:https://github.com/kubernetes/kubernetes/releases


截止2019.08.09最新的版本支持信息:

Kubernetes 1.15.2  –>Docker版本1.13.1、17.03、17.06、17.09、18.06、18.09

Kubernetes 1.15.1  –>Docker版本1.13.1、17.03、17.06、17.09、18.06、18.09

Kubernetes 1.15.0  –>Docker版本1.13.1、17.03、17.06、17.09、18.06、18.09

Kubernetes 1.14.5  –>Docker版本1.13.1、17.03、17.06、17.09、18.06、18.09

Kubernetes 1.14.4  –>Docker版本1.13.1、17.03、17.06、17.09、18.06、18.09

Kubernetes 1.14.3  –>Docker版本1.13.1、17.03、17.06、17.09、18.06、18.09

Kubernetes 1.14.2  –>Docker版本1.13.1、17.03、17.06、17.09、18.06、18.09

Kubernetes 1.14.1  –>Docker版本1.13.1、17.03、17.06、17.09、18.06、18.09

Kubernetes 1.14.0  –>Docker版本1.13.1、17.03、17.06、17.09、18.06、18.09

Kubernetes 1.13.5  –>Docker版本1.11.1、1.12.1、1.13.1、17.03、17.06、17.09、18.06

Kubernetes 1.13.5  –>Docker版本1.11.1、1.12.1、1.13.1、17.03、17.06、17.09、18.06

Kubernetes 1.13.4  –>Docker版本1.11.1、1.12.1、1.13.1、17.03、17.06、17.09、18.06

Kubernetes 1.13.3  –>Docker版本1.11.1、1.12.1、1.13.1、17.03、17.06、17.09、18.06

Kubernetes 1.13.2  –>Docker版本1.11.1、1.12.1、1.13.1、17.03、17.06、17.09、18.06

Kubernetes 1.13.1  –>Docker版本1.11.1、1.12.1、1.13.1、17.03、17.06、17.09、18.06

Kubernetes 1.13.0  –>Docker版本1.11.1、1.12.1、1.13.1、17.03、17.06、17.09、18.06

Kubernetes 1.12.*  –>Docker版本1.11.1、1.12.1、1.13.1、17.03、17.06、17.09、18.06

Kubernetes 1.11.*  –>Docker版本1.11.2到1.13.1、17.03

Kubernetes 1.10.*  –>Docker版本1.11.2到1.13.1、17.03

查看方式:

1)老版本

點(diǎn)擊鏈接進(jìn)入到GitHub中查找對(duì)應(yīng)的版本后點(diǎn)擊??CHANGELOG-1.15.md

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

點(diǎn)進(jìn)去查找docker versions:(頁面現(xiàn)在存在404情況)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

2)新版本:

點(diǎn)擊鏈接進(jìn)入到GitHub中查找對(duì)應(yīng)的版本后點(diǎn)擊?the CHANGELOG?

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

3.Kubernetes 1.24 1.25 集群使用docker作為容器

(1)問題

在新版本Kubernetes環(huán)境(1.24以及以上版本)下官方不在支持docker作為容器運(yùn)行時(shí)了,若要繼續(xù)使用docker 需要對(duì)docker進(jìn)行配置一番。需要安裝cri-docker作為Kubernetes容器。

(2)解決

查看當(dāng)前容器運(yùn)行時(shí)

# 查看指定節(jié)點(diǎn)容器運(yùn)行時(shí)
kubectl  describe node k8s-node1  | grep Container
  Container Runtime Version:  containerd://1.6.8

# 查看所有節(jié)點(diǎn)容器運(yùn)行時(shí)
kubectl  describe node  | grep Container
  Container Runtime Version:  containerd://1.6.8
  Container Runtime Version:  containerd://1.6.8
  Container Runtime Version:  containerd://1.6.8
  Container Runtime Version:  containerd://1.6.8
  Container Runtime Version:  containerd://1.6.8
  Container Runtime Version:  containerd://1.6.8
  Container Runtime Version:  containerd://1.6.8
  Container Runtime Version:  containerd://1.6.8

安裝docker

# 更新源信息
yum update
# 安裝必要軟件
yum install -y yum-utils   device-mapper-persistent-data   lvm2

# 寫入docker源信息
sudo yum-config-manager \
    --add-repo \
    https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

# 更新源信息并進(jìn)行安裝
yum update
yum install docker-ce docker-ce-cli containerd.io


# 配置加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://XXXXXXXX.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

安裝cri-docker

# 由于1.24以及更高版本不支持docker所以安裝cri-docker
# 下載cri-docker 
wget  https://ghproxy.com/https://github.com/Mirantis/cri-dockerd/releases/download/v0.2.5/cri-dockerd-0.2.5.amd64.tgz

# 解壓cri-docker
tar xvf cri-dockerd-0.2.5.amd64.tgz 
cp cri-dockerd/cri-dockerd  /usr/bin/

# 寫入啟動(dòng)配置文件
cat >  /usr/lib/systemd/system/cri-docker.service <<EOF
[Unit]
Description=CRI Interface for Docker Application Container Engine
Documentation=https://docs.mirantis.com
After=network-online.target firewalld.service docker.service
Wants=network-online.target
Requires=cri-docker.socket

[Service]
Type=notify
ExecStart=/usr/bin/cri-dockerd --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.7
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always

StartLimitBurst=3

StartLimitInterval=60s

LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity

TasksMax=infinity
Delegate=yes
KillMode=process

[Install]
WantedBy=multi-user.target
EOF

# 寫入socket配置文件
cat > /usr/lib/systemd/system/cri-docker.socket <<EOF
[Unit]
Description=CRI Docker Socket for the API
PartOf=cri-docker.service

[Socket]
ListenStream=%t/cri-dockerd.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker

[Install]
WantedBy=sockets.target
EOF

# 進(jìn)行啟動(dòng)cri-docker
systemctl daemon-reload ; systemctl enable cri-docker --now

為kubelet配置容器運(yùn)行時(shí)

# 1.25 版本下 所有k8s節(jié)點(diǎn)配置kubelet service
cat > /usr/lib/systemd/system/kubelet.service << EOF

[Unit]
Description=Kubernetes Kubelet
Documentation=https://github.com/kubernetes/kubernetes
After=containerd.service
Requires=containerd.service

[Service]
ExecStart=/usr/local/bin/kubelet \\
    --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.kubeconfig  \\
    --kubeconfig=/etc/kubernetes/kubelet.kubeconfig \\
    --config=/etc/kubernetes/kubelet-conf.yml \\
    --container-runtime-endpoint=unix:///run/cri-dockerd.sock  \\
    --node-labels=node.kubernetes.io/node=

[Install]
WantedBy=multi-user.target
EOF


# 1.24 版本下 所有k8s節(jié)點(diǎn)配置kubelet service
cat > /usr/lib/systemd/system/kubelet.service << EOF

[Unit]
Description=Kubernetes Kubelet
Documentation=https://github.com/kubernetes/kubernetes
After=containerd.service
Requires=containerd.service

[Service]
ExecStart=/usr/local/bin/kubelet \\
    --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.kubeconfig  \\
    --kubeconfig=/etc/kubernetes/kubelet.kubeconfig \\
    --config=/etc/kubernetes/kubelet-conf.yml \\
    --container-runtime=remote  \\
    --runtime-request-timeout=15m  \\
    --container-runtime-endpoint=unix:///run/cri-dockerd.sock  \\
    --cgroup-driver=systemd \\
    --node-labels=node.kubernetes.io/node= \\
    --feature-gates=IPv6DualStack=true

[Install]
WantedBy=multi-user.target
EOF



# 重啟
systemctl daemon-reload
systemctl restart kubelet
systemctl enable --now kubelet

驗(yàn)證

# 查看指定節(jié)點(diǎn)容器運(yùn)行時(shí)
kubectl  describe node k8s-node1  | grep Container
  Container Runtime Version:  docker://20.10.17

# 查看所有節(jié)點(diǎn)容器運(yùn)行時(shí)
kubectl  describe node  | grep Container
  Container Runtime Version:  containerd://1.6.8
  Container Runtime Version:  containerd://1.6.8
  Container Runtime Version:  containerd://1.6.8
  Container Runtime Version:  containerd://1.6.8
  Container Runtime Version:  containerd://1.6.8
  Container Runtime Version:  containerd://1.6.8
  Container Runtime Version:  containerd://1.6.8
  Container Runtime Version:  docker://20.10.17

4.連接拒絕

(1)報(bào)錯(cuò)云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

(2)原因分析

kubectl命令需要使用kubernetes-admin來運(yùn)行,需要admin.conf文件(conf文件是通過“ kubeadmin init”命令在主節(jié)點(diǎn)/etc/kubernetes 中創(chuàng)建),但是從節(jié)點(diǎn)沒有conf文件,也沒有設(shè)置 KUBECONFIG =/root/admin.conf環(huán)境變量,所以需要復(fù)制conf文件到從節(jié)點(diǎn),并設(shè)置環(huán)境變量就可以了

(3)解決方法

主節(jié)點(diǎn)的admin.conf拷貝到從節(jié)點(diǎn),設(shè)置環(huán)境變量

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

#拷貝admin.conf注意路徑
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_profile

執(zhí)行

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

成功

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

5.kubeadm join命令將node加入master時(shí)報(bào)錯(cuò)

(1)報(bào)錯(cuò)

節(jié)點(diǎn)納入管理失敗,五分鐘后超時(shí)放棄連接。

出現(xiàn)error execution phase preflight: couldn't validate the identity of the API Server: abort connecting to API servers after timeout of 5m0s錯(cuò)誤

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

(2)原因分析

token 過期:

此時(shí)需要通過kubedam重新生成token

[root@master opt]# kubeadm token generate
30nu35.cqbsmgdd15xnxh1t


#下面這條命令中會(huì)用到該結(jié)果,根據(jù)token輸出添加命令
[root@master opt]# kubeadm token create 30nu35.cqbsmgdd15xnxh1t --print-join-command --ttl=0 
kubeadm join 192.168.204.171:6443 --token 30nu35.cqbsmgdd15xnxh1t     --discovery-token-ca-cert-hash sha256:6d851b46ccd6c61a81d3aa08eae4971bc7a5ba32dd4918f7981c482e3fdd4d52 


k8s api server不可達(dá):

此時(shí)需要檢查和關(guān)閉所有服務(wù)器的firewalldselinux

[root@master ~]#setenforce 0
[root@master ~]#sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
[root@master ~]#systemctl disable firewalld --now

(3)解決

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

6.coredns一直處于ContainerCreating

(1)報(bào)錯(cuò)

coredns一直處于ContainerCreating狀態(tài)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)(2)原因分析

查詢pod狀態(tài)

kubectl describe pods -n kube-system coredns-bccdc95cf-fjskt

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

最后的事件監(jiān)聽為:

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

發(fā)現(xiàn)這里報(bào)錯(cuò)了:

FailedCreatePodSandBox: Failed create pod sandbox

執(zhí)行命令查看日志:

sudo journalctl -xe | grep cni

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

?發(fā)現(xiàn)為:

ailed to find plugin "flannel" in path [/opt/cni/bin]

然后去/usr/local/bin目錄下,發(fā)現(xiàn)在master和worker節(jié)點(diǎn)忘記拷貝flannel命令了。

(3)解決方法

需要下載CNI插件:CNI plugins v0.8.6

github下載地址:https://github.com/containernetworking/plugins/releases/tag/v0.8.6

(在1.0.0版本后CNI Plugins中沒有flannel)

下載后通過xftp 上傳到Linux /home目錄解壓

tar zxvf cni-plugins-linux-amd64-v0.8.6.tgz

1)? node1節(jié)點(diǎn)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

2) node2節(jié)點(diǎn)云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

②?復(fù)制 flannel 到 /opt/cni/bin/

cp flannel /opt/cni/bin/

1)node1節(jié)點(diǎn)云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

2)node2節(jié)點(diǎn)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

成功

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

7.flannel如何分配子網(wǎng)

(1)配置--pod-network-cidr

kubeadm init \
--apiserver-advertise-address=0.0.0.0 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version=v1.15.1 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16
--------------------------------------------------------------------------------------------
初始化集群需使用kubeadm init命令,可以指定具體參數(shù)初始化,也可以指定配置文件初始化。
可選參數(shù):
--apiserver-advertise-address:apiserver通告給其他組件的IP地址,一般應(yīng)該為Master節(jié)點(diǎn)的用于集群內(nèi)部通信的IP地址,0.0.0.0表示節(jié)點(diǎn)上所有可用地址
--apiserver-bind-port:apiserver的監(jiān)聽端口,默認(rèn)是6443
--cert-dir:通訊的ssl證書文件,默認(rèn)/etc/kubernetes/pki
--control-plane-endpoint:控制臺(tái)平面的共享終端,可以是負(fù)載均衡的ip地址或者dns域名,高可用集群時(shí)需要添加
--image-repository:拉取鏡像的鏡像倉庫,默認(rèn)是k8s.gcr.io
--kubernetes-version:指定kubernetes版本
--pod-network-cidr:pod資源的網(wǎng)段,需與pod網(wǎng)絡(luò)插件的值設(shè)置一致。通常,F(xiàn)lannel網(wǎng)絡(luò)插件的默認(rèn)為10.244.0.0/16,Calico插件的默認(rèn)值為192.168.0.0/16;

(2)更改kube-proxy配置

更改

kubectl edit configmap kube-proxy -n kube-system

找到如下部分的內(nèi)容

   minSyncPeriod: 0s
      scheduler: ""
      syncPeriod: 30s
    kind: KubeProxyConfiguration
    metricsBindAddress: 127.0.0.1:10249
    mode: "ipvs"                          # 加上這個(gè)
    nodePortAddresses: null

其中mode原來是空,默認(rèn)為iptables模式,改為ipvs

scheduler默認(rèn)是空,默認(rèn)負(fù)載均衡算法為輪詢

(3)查看

cd /run/flannel/

vim subnet.env 

master節(jié)點(diǎn):

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

node1節(jié)點(diǎn):

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

?node2節(jié)點(diǎn)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

8.其他機(jī)器無法登陸Harbor

(1)報(bào)錯(cuò)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

(2)原因分析

配置文件錯(cuò)誤

(3)解決方法

檢查dockerdaemon.json是否配置了insecure-registries。配置好后,需要使用systemctl reload docker重啟docker服務(wù)。

修改前:

少一個(gè)逗號(hào)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

修改后:

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

使用docker info查看配置

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

修改前:

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

修改后:

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

成功

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

9.pod刪除不了

(1) 報(bào)錯(cuò)

pod鏡像拉取失敗一直刪除不了

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

(2)原因分析

命令缺少pod


# 加pod
kubectl delete pod nginx-deployment-6959f4b694-nds9n

kubectl delete pod nginx-deployment-6959f4b694-qmpd6

(3)解決

查看rs和deployment以及pod

kubectl get pods -o wide

 kubectl get deployment

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

刪除deployment

kubectl delete deployment nginx-deployment

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)
再次查看deployment

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

再次查看pod,發(fā)現(xiàn)已成功刪除

云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu),云原生,kubernetes,架構(gòu)

四、總結(jié)

K8S通過kubeadm安裝出來以后都是以Pod方式存在,即底層是以容器方式運(yùn)行,所以kubelet必須設(shè)置開機(jī)自啟。

使用Systemd管理的Cgroup來進(jìn)行資源控制與管理,因?yàn)橄鄬?duì)Cgroupfs而言,Systemd限制CPU、內(nèi)存等資源更加簡(jiǎn)單和成熟穩(wěn)定。文章來源地址http://www.zghlxwxcb.cn/news/detail-694666.html

到了這里,關(guān)于云原生Kubernetes:Kubeadm部署K8S單Master架構(gòu)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Kubernetes(K8s)使用 kubeadm 方式搭建多 master 高可用 K8s 集群

    Kubernetes(K8s)使用 kubeadm 方式搭建多 master 高可用 K8s 集群

    本篇主要針對(duì)上篇文章的單 master 節(jié)點(diǎn)的 K8s 集群上搭建多 master 節(jié)點(diǎn)集群 和 LB 負(fù)載均衡服務(wù)器。 Kubernetes(K8S)集群搭建基礎(chǔ)入門教程 虛擬機(jī) IP 地址: IP 操作系統(tǒng) 主機(jī)名稱 192.168.2.121 centos7.9 k8s-master01 192.168.2.124 centos7.9 k8s-master02 192.168.2.125 centos7.9 k8s-node01 192.168.2.126 centos

    2023年04月26日
    瀏覽(34)
  • 【云原生-K8s-1】kubeadm搭建k8s集群(一主兩從)完整教程及kubernetes簡(jiǎn)介

    【云原生-K8s-1】kubeadm搭建k8s集群(一主兩從)完整教程及kubernetes簡(jiǎn)介

    ?? 博主簡(jiǎn)介 ????云計(jì)算領(lǐng)域優(yōu)質(zhì)創(chuàng)作者 ????華為云開發(fā)者社區(qū)專家博主 ????阿里云開發(fā)者社區(qū)專家博主 ?? 交流社區(qū): 運(yùn)維交流社區(qū) 歡迎大家的加入! ??Kubernetes(簡(jiǎn)稱:k8s) 是Google在2014年6月開源的一個(gè)容器集群管理系統(tǒng),使用Go語言開發(fā),用于管理云平臺(tái)中多

    2024年02月07日
    瀏覽(28)
  • 【云原生】Kubeadm部署k8s

    【云原生】Kubeadm部署k8s

    在所有節(jié)點(diǎn)上安裝Docker和kubeadm 部署Kubernetes Master 部署容器網(wǎng)絡(luò)插件 部署 Kubernetes Node,將節(jié)點(diǎn)加入Kubernetes集群中 部署 Dashboard Web 頁面,可視化查看Kubernetes資源 實(shí)驗(yàn)環(huán)境 服務(wù)器 IP地址 主要組件 master 192.168.10.130 docker/kubeadm/kubelet/kubectl/flannel node01 192.168.10.133 docker/kubeadm/kubel

    2024年02月04日
    瀏覽(23)
  • k8s(kubernetes)的兩種部署方式(kubeadm)

    在開始之前,部署Kubernetes集群機(jī)器需要滿足以下幾個(gè)條件: 一臺(tái)或多臺(tái)機(jī)器,操作系統(tǒng)CentOS7.x-86_x64 硬件配置:2GB或更多RAM,2個(gè)CPU或更多CPU,硬盤30GB或更多 可以訪問外網(wǎng),需要拉取鏡像,如果服務(wù)器不能上網(wǎng),需要提前下載鏡像并導(dǎo)入節(jié)點(diǎn)禁止swap分區(qū) 角色 IP master 192.168.1.11 node1 192.16

    2024年02月22日
    瀏覽(28)
  • Kubernetes技術(shù)--使用kubeadm快速部署一個(gè)K8s集群

    Kubernetes技術(shù)--使用kubeadm快速部署一個(gè)K8s集群

    這里我們配置一個(gè) 單master集群 。( 一個(gè)Master節(jié)點(diǎn),多個(gè)Node節(jié)點(diǎn) ) 1.硬件環(huán)境準(zhǔn)備 一臺(tái)或多臺(tái)機(jī)器,操作系統(tǒng) CentOS7.x-86_x64 。這里我們使用安裝了CentOS7的三臺(tái)虛擬機(jī) 硬件配置 : 2GB或更多RAM , 2個(gè)CPU或更多CPU , 硬盤30GB或更多 2.主機(jī)名稱和IP地址規(guī)劃 3. 初始化準(zhǔn)備工作 (1).關(guān)

    2024年02月10日
    瀏覽(122)
  • 【K8S】docker和K8S(kubernetes)理解?docker是什么?K8S架構(gòu)、Master節(jié)點(diǎn) Node節(jié)點(diǎn) K8S架構(gòu)圖

    【K8S】docker和K8S(kubernetes)理解?docker是什么?K8S架構(gòu)、Master節(jié)點(diǎn) Node節(jié)點(diǎn) K8S架構(gòu)圖

    一、docker的問世 ????????在LXC(Linux container)Linux容器虛擬技術(shù)出現(xiàn)之前,業(yè)界網(wǎng)紅是虛擬機(jī)。虛擬機(jī)技術(shù)的代表,是VMWare和OpenStack。 虛擬機(jī)是什么? ????????虛擬機(jī)其實(shí)就是 在你的操作系統(tǒng)里面,裝一個(gè)軟件,然后通過這個(gè)軟件,再模擬一臺(tái)甚至多臺(tái)“子電腦”出來。

    2024年03月26日
    瀏覽(36)
  • centos安裝部署Kubernetes(k8s)步驟使用kubeadm方式

    centos安裝部署Kubernetes(k8s)步驟使用kubeadm方式

    機(jī)器地址: 192.168.0.35 k8s-master 192.168.0.39 k8s-node1 192.168.0.116 k8s-node2 修改每臺(tái)機(jī)器的名字 關(guān)閉防火墻和selinux 臨時(shí)關(guān)閉selinux: 永久關(guān)閉: 修改selinux為disabled或者permissive 重啟生效 配置本地解析 確保每個(gè)節(jié)點(diǎn)MAC地址和 product_uuid 的唯一性 同步時(shí)間 如果各機(jī)器上時(shí)間都沒有問題

    2024年02月06日
    瀏覽(32)
  • 【云原生K8s】二進(jìn)制部署單master K8s+etcd集群

    【云原生K8s】二進(jìn)制部署單master K8s+etcd集群

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? mater節(jié)點(diǎn) master01 192.168.190.10 kube-apiserver kube-controller-manager kube-scheduler etcd ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? node節(jié)點(diǎn) node01 192.168.190.20 kubelet kube-proxy docker (容器引擎) node02 192.168.190.30 kubelet kube-proxy do

    2024年02月14日
    瀏覽(30)
  • 【Kubernetes部署篇】Kubeadm方式搭建K8s集群 1.26.0版本

    【Kubernetes部署篇】Kubeadm方式搭建K8s集群 1.26.0版本

    官方文檔: 二進(jìn)制下載地址 環(huán)境規(guī)劃: pod網(wǎng)段:10.244.0.0/16 service網(wǎng)段:10.10.0.0/16 注意: pod和service網(wǎng)段不可沖突,如果沖突會(huì)導(dǎo)致K8S集群安裝失敗。 容器運(yùn)行時(shí)本次使用containerd。 主機(jī)名 IP地址 操作系統(tǒng) master-1 16.32.15.200 CentOS7.8 node-1 16.32.15.201 CentOS7.8 node-2 16.32.15.202 CentOS

    2024年02月10日
    瀏覽(51)
  • 【Kubernetes部署篇】Kubeadm方式搭建K8s集群 1.27.0版本

    【Kubernetes部署篇】Kubeadm方式搭建K8s集群 1.27.0版本

    官方文檔: 二進(jìn)制下載地址 環(huán)境規(guī)劃: pod網(wǎng)段:10.244.0.0/16 service網(wǎng)段:10.10.0.0/16 注意: pod和service網(wǎng)段不可沖突,如果沖突會(huì)導(dǎo)致K8S集群安裝失敗。 主機(jī)名 IP地址 操作系統(tǒng) master-1 16.32.15.200 CentOS7.8 node-1 16.32.15.201 CentOS7.8 node-2 16.32.15.202 CentOS7.8 1、關(guān)閉防火墻 2、配置域名解

    2024年02月08日
    瀏覽(35)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包