??博主簡介
????云計算領(lǐng)域優(yōu)質(zhì)創(chuàng)作者
????華為云開發(fā)者社區(qū)專家博主
????阿里云開發(fā)者社區(qū)專家博主
??交流社區(qū):運維交流社區(qū) 歡迎大家的加入!
Kubernetes簡介
??Kubernetes(簡稱:k8s) 是Google在2014年6月開源的一個容器集群管理系統(tǒng),使用Go語言開發(fā),用于管理云平臺中多個主機上的容器化的應(yīng)用,Kubernetes的目標(biāo)是讓部署容器化的應(yīng)用簡單并且高效,Kubernetes提供了資源調(diào)度、部署管理、服務(wù)發(fā)現(xiàn)、擴容縮容、監(jiān)控,維護等一整套功能。
官網(wǎng)地址: https://kubernetes.io
1 kubernetes架構(gòu)
??Kubernetes具有去中心化的架構(gòu),不會線性處理任務(wù)。它基于聲明性模型運行并實現(xiàn)"所需狀態(tài)"的概念。下面這些步驟說明了Kubernetes的基本過程:
- 管理員創(chuàng)建應(yīng)用程序的所需狀態(tài)并將其放入清單文件manifest.yml中。
- 使用CLI或提供的用戶界面將清單文件提供給Kubernetes API Server。 Kubernetes的默認(rèn)命令行工具稱為kubectl。
- Kubernetes將清單文件(描述了應(yīng)用程序的期望狀態(tài))存儲在稱為鍵值存儲(etcd)的數(shù)據(jù)庫中。
- Kubernetes隨后在集群內(nèi)的所有相關(guān)應(yīng)用程序上實現(xiàn)所需的狀態(tài)。
- Kubernetes持續(xù)監(jiān)控集群的元素,以確保應(yīng)用程序的當(dāng)前狀態(tài)不會與所需狀態(tài)有所不同。
1.1master節(jié)點
??k8s集群的管理節(jié)點,負(fù)責(zé)管理集群,提供集群的資源數(shù)據(jù)訪問入口。擁有Etcd存儲服務(wù)(可選),運行Api Server進程,Controller Manager服務(wù)進程及Scheduler服務(wù)進程,關(guān)聯(lián)工作節(jié)點Node。
- API Server
提供了資源對象的唯一操作入口,其他所有組件都必須通過它提供的API來操作資源數(shù)據(jù),只有API Server與存儲通信,其他模塊通過API Server訪問集群狀態(tài)。
- Scheduler
新建立的Pod進行節(jié)點(node)選擇(即分配機器),負(fù)責(zé)集群的資源調(diào)度。組件抽離,可以方便替換成其他調(diào)度器。
- Controller
負(fù)責(zé)執(zhí)行各種控制器,目前已經(jīng)提供了很多控制器來保證Kubernetes的正常運行。
- Cluster state store
Kubernetes默認(rèn)使用etcd作為集群整體存儲,當(dāng)然也可以使用其它的技術(shù)。etcd是一個簡單的、分布式的、一致的key-value存儲,主要被用來共享配置和服務(wù)發(fā)現(xiàn)。etcd提供了一個CRUD操作的REST API,以及提供了作為注冊的接口,以監(jiān)控指定的Node。集群的所有狀態(tài)都存儲在etcd實例中,并具有監(jiān)控的能力,因此當(dāng)etcd中的信息發(fā)生變化時,就能夠快速的通知集群中相關(guān)的組件。
控制器 | 說明 |
---|---|
Replication Controller | 管理維護Replication Controller,關(guān)聯(lián)Replication Controller和Pod,保證Replication Controller定義的副本數(shù) |
Node Controller | 管理維護Node,定期檢查Node的健康狀態(tài),標(biāo)識出(失效|未失效)的Node節(jié)點。 |
Namespace Controller | 管理維護Namespace,定期清理無效的Namespace,包括Namesapce下的API對象,比如Pod、Service等。 |
Service Controller | 管理維護Service,提供負(fù)載以及服務(wù)代理。 |
EndPoints Controller | 管理維護Endpoints,關(guān)聯(lián)Service和Pod,創(chuàng)建Endpoints為Service的后端,當(dāng)Pod發(fā)生變化時,實時更新Endpoints。 |
Service Account Controller | 管理維護Service Account,為每個Namespace創(chuàng)建默認(rèn)的Service Account,同時為Service Account創(chuàng)建Service Account Secret。 |
Persistent Volume Controller | 管理維護Persistent Volume和Persistent Volume Claim,為新的Persistent Volume Claim分配Persistent Volume進行綁定,為釋放的Persistent Volume執(zhí)行清理回收。 |
DaemonSet Controller | 管理維護Daemon Set,負(fù)責(zé)創(chuàng)建Daemon Pod,保證指定的Node上正常的運行Daemon Pod。 |
Deployment Controller | 管理維護Deployment,關(guān)聯(lián)Deployment和Replication Controller,保證運行指定數(shù)量的Pod。當(dāng)Deployment更新時,控制實現(xiàn)Replication Controller和Pod的更新。 |
Job Controller | 管理維護Job,為Jod創(chuàng)建一次性任務(wù)Pod,保證完成Job指定完成的任務(wù)數(shù)目 |
Pod Autoscaler Controller | 實現(xiàn)Pod的自動伸縮,定時獲取監(jiān)控數(shù)據(jù),進行策略匹配,當(dāng)滿足條件時執(zhí)行Pod的伸縮動作。 |
1.2 Node節(jié)點
??Node節(jié)點是工作節(jié)點監(jiān)聽API Server發(fā)送過來的新的工作分配;他們會執(zhí)行分配給他們的工作,然后將結(jié)果報告給Kubernetes主節(jié)點。
- Kubelet
負(fù)責(zé)管控容器,Kubelet會從Kubernetes API Server接收Pod的創(chuàng)建請求,啟動和停止容器,監(jiān)控容器運行狀態(tài)并匯報給Kubernetes API Server。
- Container Runtime
每一個Node都會運行一個Container Runtime,其負(fù)責(zé)下載鏡像和運行容器。Kubernetes本身并不提供容器運行時環(huán)境,但提供了接口,可以插入所選擇的容器運行時環(huán)境。kubelet使用Unix socket之上的gRPC框架與容器運行時進行通信,kubelet作為客戶端,而CRI shim作為服務(wù)器。
- kube proxy
基于一種公共訪問策略(例如:負(fù)載均衡),服務(wù)提供了一種訪問一群pod的途徑。此方式通過創(chuàng)建一個虛擬的IP來實現(xiàn),客戶端能夠訪問此IP,并能夠?qū)⒎?wù)透明的代理至Pod。每一個Node都會運行一個kube-proxy,kube proxy通過iptables規(guī)則引導(dǎo)訪問至服務(wù)IP,并將重定向至正確的后端應(yīng)用,通過這種方式kube-proxy提供了一個高可用的負(fù)載均衡解決方案。服務(wù)發(fā)現(xiàn)主要通過DNS實現(xiàn)。
??在Kubernetes中,kube proxy負(fù)責(zé)為Pod創(chuàng)建代理服務(wù);引到訪問至服務(wù);并實現(xiàn)服務(wù)到Pod的路由和轉(zhuǎn)發(fā),以及通過應(yīng)用的負(fù)載均衡。
- Pod
運行于Node節(jié)點上,若干相關(guān)容器的組合。Pod內(nèi)包含的容器運行在同一宿主機上,使用相同的網(wǎng)絡(luò)命名空間、IP地址,同一個Pod中,端口不能重復(fù),否則報錯,能夠通過localhost進行通信。Pod是Kurbernetes進行創(chuàng)建、調(diào)度和管理的最小單位,它提供了比容器更高層次的抽象,使得部署和管理更加靈活。一個Pod可以包含一個容器或者多個相關(guān)容器。
??Pod其實有兩種類型:普通Pod和靜態(tài)Pod,后者比較特殊,它并不存在Kubernetes的etcd存儲中,而是存放在某個具體的Node上的一個具體文件中,并且只在此Node上啟動。普通Pod一旦被創(chuàng)建,就會被放入etcd存儲中,隨后會被Kubernetes Master調(diào)度到摸個具體的Node上進行綁定,隨后該Pod被對應(yīng)的Node上的kubelet進程實例化成一組相關(guān)的Docker容器并啟動起來。在默認(rèn)情況下,當(dāng)Pod里的某個容器停止時,Kubernetes會自動檢測到這個問起并且重啟這個Pod(重啟Pod里的所有容器),如果Pod所在的Node宕機,則會將這個Node上的所有Pod重新調(diào)度到其他節(jié)點上。
1.3 kubectl
?? 集群管理命令行工具集,通過客戶端的kubectl命令集操作,API Server響應(yīng)對應(yīng)的命令結(jié)果,從而達到對kubernetes集群的管理。
2 kubeadm
??Kubeadm是一個工具,它提供了kubeadm init以及kubeadm join這兩個命令作為快速創(chuàng)建kubernetes 集群的最佳實踐。
??kubeadm通過執(zhí)行必要的操作來啟動和運行一個最小可用的集群。kubeadm只關(guān)心啟動集群,而不關(guān)心其他工作,如部署前的節(jié)點準(zhǔn)備工作、安裝各種Kubernetes Dashboard、監(jiān)控解決方案以及特定云提供商的插件,這些都不屬于kubeadm關(guān)注范圍。
2.1 kubeadm功能
- kubeadm init 啟動/初始化一個 Kubernetes 主節(jié)點;
- kubeadm join 啟動一個 Kubernetes 工作節(jié)點并且將其加入到集群;
- kubeadm upgrade 更新一個 Kubernetes 集群到新版本;
- kubeadm config 如果使用 v1.7.x 或者更低版本的 kubeadm 初始化集群,您需要對集群做一些配置以便使用 kubeadm upgrade 命令;
- kubeadm token 管理 kubeadm join 使用的令牌;
- kubeadm reset 還原 kubeadm init 或者 kubeadm join 對主機所做的任何更改;
- kubeadm version 打印 kubeadm 版本;
- kubeadm alpha 預(yù)覽一組可用的新功能以便從社區(qū)搜集反饋。
Kubernetes集群部署
準(zhǔn)備工作(所有節(jié)點都要做同樣的操作)
服務(wù)器配置
集群(一主兩從) | ip地址 | 主機名 | 配置 |
---|---|---|---|
主 | 172.16.11.221 | k8s-master | 2C/2G/50G |
從 | 172.16.11.222 | k8s-node1 | 2C/2G/50G |
從 | 172.16.11.223 | k8s-node2 | 2C/2G/50G |
關(guān)閉防火墻
systemctl stop firewalld && systemctl disable firewalld
如果在線上服務(wù)器之類的不能關(guān)閉防火墻,那就需要開啟幾個端口;(這里說的是k8所用到的端口)
- master節(jié)點:
規(guī)則 | 端口范圍 | 作用 | 使用者 |
---|---|---|---|
TCP | 6443* | Kubernetes API server | All |
TCP | 2379-2380 | etcd server client API | kube-apiserver, etcd |
TCP | 10250 | Kubelet API | Self, Control plane |
TCP | 10251 | kube-scheduler | Self |
TCP | 10252 | kube-controller-manager | Self |
- node節(jié)點:
規(guī)則 | 端口范圍 | 作用 | 使用者 |
---|---|---|---|
TCP | 10252 | Kubelet API | Self, Control plane |
TCP | 30000-32767 | NodePort Services** | All |
關(guān)閉selinux
臨時關(guān)閉selinux(沙河)如需永久關(guān)閉selinux需要修改為sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
#臨時關(guān)閉selinux
setenforce 0
#永久關(guān)閉selinux
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
關(guān)閉交換分區(qū)
#臨時關(guān)閉所有的交換分區(qū)
swapoff -a
#永久關(guān)閉所有的交換分區(qū)
sed -i '/swap/s/^\(.*\)$/#\1/g' /etc/fstab
修改三臺集群的主機名:(每個主機限一條命令)
[root@k8s-master1 ~]# hostnamectl set-hostname k8s-master
[root@k8s-node1 ~]# hostnamectl set-hostname k8s-node1
[root@k8s-node2 ~]# hostnamectl set-hostname k8s-node2
所有節(jié)點都添加集群ip與主機名到hosts中:
cat >> /etc/hosts << EOF
172.16.11.221 k8s-master
172.16.11.222 k8s-node1
172.16.11.223 k8s-node2
EOF
注意:ip一定要改成自己的ip,不要直接復(fù)制粘貼
三臺機器進行時間同步
#安裝同步時間命令
yum install ntpdate -y
#同步時間
ntpdate cn.pool.ntp.org
#設(shè)置定時任務(wù)每五分鐘同步一次時間
echo "*/5 * * * * root /usr/sbin/ntpdate cn.pool.ntp.org &>/dev/null" >> /etc/crontab
特殊說明:
如果是克隆虛擬機建議執(zhí)行rm -rf /etc/udev/* 保證網(wǎng)卡UUID不同
三臺都安裝需要的一些命令:
- 添加centos源并將下載地址更換為阿里云地址
#添加centos源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
#將下載地址更換為阿里云地址
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
- 添加epel擴展源
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
- 清除緩存
yum clean all
- 重新加載源緩存
yum makecache
- 升級yum并安裝一些會用到的命令
yum -y update && yum -y install lrzsz wget conntrack ipvsadm ipset jq psmisc sysstat curl iptables net-tools libseccomp gcc gcc-c++ yum-utils device-mapper-persistent-data lvm2 bash-completion
安裝需要一些時間,就等待安裝即可;
部署 docker(所有節(jié)點都需要部署)
#安裝docker所需的依賴包
[root@docker ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
#添加阿里云的docker鏡像地址
[root@docker ~]# sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
&&#或者(二選一即可)
[root@docker ~]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
#更新緩存,只處理新添加的yum源緩存
[root@docker ~]# yum makecache fast
#部署docker,默認(rèn)安裝最新版本
[root@docker ~]# yum install -y docker-ce-20.10.14 docker-ce-cli-20.10.14 containerd.io
#查看安裝docker版本
[root@docker ~]# docker --version(或者使用docker version)
Docker version 20.10.14, build a224086
#加載docker配置
[root@docker ~]# systemctl daemon-reload
#啟動docker服務(wù)
[root@docker ~]# systemctl start docker
#設(shè)置docker服務(wù)開機自啟
[root@docker ~]# systemctl enable docker
#查看docker可以安裝的版本,也可以自己安裝指定版本,yum -y install docker-ce-19.03.12.el7
[root@docker ~]# yum list docker-ce --showduplicates | sort -r
給docker添加鏡像加速器及cgroup并重啟docker服務(wù)
[root@docker ~]# mkdir -p /etc/docker
[root@docker ~]# tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://mrlmpasq.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
#由于新版kubelet建議使用systemd,所以可以把docker的CgroupDriver改成systemd
#重新加載docker配置
[root@docker ~]# systemctl daemon-reload
#重新啟動docker服務(wù)
[root@docker ~]# systemctl restart docker
docker部署完成
部署 kubernetes(所有節(jié)點都要部署)
配置相關(guān)的內(nèi)核參數(shù)
將橋接的IPv4 流量傳遞到iptables 的鏈
[root@docker ~]# cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
#讓其生效
sysctl --system
添加 k8s yum源
[root@docker ~]# 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 makecache fast
安裝 kubeadm kubelet kubectl
注:安裝這幾個版本不要用最新的,容易出問題
yum install -y kubeadm-1.20.0-0 kubelet-1.20.0-0 kubectl-1.20.0-0
#查看kubeadm版本
kubeadm version
- 啟動kubelet并設(shè)置開機自啟
systemctl enable kubelet && systemctl start kubelet
kubernetes強化tab(安裝之后會tab可以補全命令及參數(shù))
- 配置環(huán)境
echo 'source <(kubectl completion bash)' >> ~/.bashrc
1、退出連接,重新連接;
2、或者bash
更新環(huán)境就可以使用了。
查看kubeadm使用的鏡像
kubeadm config images list
可以發(fā)現(xiàn)這里都是國外的鏡像
k8s.gcr.io/kube-apiserver:v1.20.15
k8s.gcr.io/kube-controller-manager:v1.20.15
k8s.gcr.io/kube-scheduler:v1.20.15
k8s.gcr.io/kube-proxy:v1.20.15
k8s.gcr.io/pause:3.2
k8s.gcr.io/etcd:3.4.13-0
k8s.gcr.io/coredns:1.7.0
- 解決國外鏡像不能訪問的問題,執(zhí)行kubeadm.sh腳本,用于拉取鏡像/打tag/刪除原有鏡像;
wget -O kubeadm.sh https://files.rundreams.net/sh/kubeadm.sh && sh kubeadm.sh
等待拉取完成。
如果感覺拉取比較費勁,可以下載kubeadm所需的鏡像和腳本:kubeadm所需鏡像包及腳本v1.20.15版本
拉取完成查看鏡像;
docker images
master節(jié)點
初始化master節(jié)點
如果執(zhí)行kubeadm init初始化k8s集群失敗了,在下一次執(zhí)行kubeadm init初始化語句之前,可以先執(zhí)行kubeadm reset
命令。這個命令的作用是重置節(jié)點,大家可以把這個命令理解為:上一次kubeadm init初始化集群操作失敗了,該命令清理了之前的失敗環(huán)境。
此命令只在master節(jié)點執(zhí)行,172.16.11.221
替換為自己的master節(jié)點IP,172.17.10.1/18
替換為自己的pod網(wǎng)段。
kubeadm init --kubernetes-version=1.20.15 --apiserver-advertise-address=172.16.11.221 --pod-network-cidr=172.17.10.1/18
初始化成功圖為下:
如遇初始化報錯可根據(jù)
systemctl status kubelet
或者journalctl -xeu kubelet
查看報錯信息來解。決
- 根據(jù)成功提示先執(zhí)行下面內(nèi)容
這些是成功圖中提示的那些,要給他創(chuàng)建一下
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
#查看nodes節(jié)點
kubectl get nodes
#這個時候master是處于NotReady狀態(tài)的。
node節(jié)點的加入
- 完成之后將剛剛初始化master節(jié)點成功后的
kubeadm join信息
復(fù)制到其他node節(jié)點進行加入。
node1:
kubeadm join 172.16.11.221:6443 --token ckgdsy.xa5x21lsjqak2zmr \
--discovery-token-ca-cert-hash sha256:3bc8dd07b7e88a5f7b0efa81b4ae4918abb440f93f4940c72f9b4a842d6c872b
node2:
kubeadm join 172.16.11.221:6443 --token ckgdsy.xa5x21lsjqak2zmr \
--discovery-token-ca-cert-hash sha256:3bc8dd07b7e88a5f7b0efa81b4ae4918abb440f93f4940c72f9b4a842d6c872b
node節(jié)點顯示這樣就是加載成功;
加載成功之后返回master節(jié)點查看集群
[root@k8s-master ~]# kubectl get nodes
現(xiàn)在的集群狀態(tài)都是NotReady
表示不可達;這是因為還沒有安裝網(wǎng)絡(luò)插件,下面我們來安裝一下網(wǎng)絡(luò)插件(caclico)
給master節(jié)點安裝Pod網(wǎng)絡(luò)插件(calico)
選擇網(wǎng)絡(luò)插件:https://kubernetes.io/docs/concepts/cluster-administration/addons/
快速開始配置:https://projectcalico.docs.tigera.io/archive/v3.20/getting-started/clis/calicoctl/install
calico網(wǎng)絡(luò)插件:https://docs.projectcalico.org/v3.9/getting-started/kubernetes/
- 在master節(jié)點安裝calico
kubectl apply -f https://docs.projectcalico.org/v3.9/manifests/calico.yaml
- 確認(rèn)一下calico是否安裝成功
kubectl get pods --all-namespaces -w
kubectl get pods -n kube-system -w
查看節(jié)點連接狀態(tài)
安裝完成之后,再次返回master節(jié)點查看集群,在主節(jié)點執(zhí)行命令看集群是否成功
kubectl get nodes
#或者使用加-o wide查看詳細(xì)
kubectl get nodes -o wide
STATUS 狀態(tài)為Ready
則連接成功。
測試
- 寫一個nginx的yaml文件
cat > pod_nginx_rs.yaml <<EOF
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: nginx
labels:
tier: frontend
spec:
replicas: 3
selector:
matchLabels:
tier: frontend
template:
metadata:
name: nginx
labels:
tier: frontend
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
EOF
- 根據(jù)pod_nginx_rs.yml文件創(chuàng)建pod
kubectl apply -f pod_nginx_rs.yaml
- 查看pod
#查看所有的pod
kubectl get pods
#查看所有的pod詳細(xì)信息
kubectl get pods -o wide
#查看所有的pod超級詳細(xì)信息
kubectl describe pod nginx
- 通過rs將pod擴容為5個nginx服務(wù)
#將nginx服務(wù)由3個擴容為5個
kubectl scale rs nginx --replicas=5
#查看所有的pod
kubectl get pods -o wide
- 光有ReplicaSet是不行的,ReplicaSet不會提供服務(wù)的,需要一個Service。將它應(yīng)用到集群里面去。
cat > pod_nginx_rs_svc.yaml <<EOF
apiVersion: v1
kind: Service # 類型是service
metadata:
name: nginx # 這個service的全局唯一名稱
spec:
type: NodePort
ports:
- port: 80 # service提供服務(wù)的端口號
nodePort: 30000 # 想要對外的端口
selector:
tier: frontend # 把擁有{tier:labels}或者{app:labels}這個標(biāo)簽的pod應(yīng)用到這個服務(wù)里面
EOF
如果不加nodePort
也就是不指定nodeport,默認(rèn)會隨機輸出端口,可以通過kubectl get svc
查看;
如果需要修改端口范圍,如果是按照我的方式部署的,可在:vim /etc/kubernetes/manifests/kube-apiserver.yaml
的第17行進行修改,默認(rèn)范圍是30000-32767。
- 根據(jù) pod_nginx_rs_svc.yml 文件創(chuàng)建services,需對外訪問
kubectl apply -f pod_nginx_rs_svc.yaml
- 查看services
kubectl get svc
kubectl get services
kubectl get svc 中的 type 。
- Cluster IP 為服務(wù)器內(nèi)部使用
- Node Port 為服務(wù)器內(nèi)部外部都可以使用,可以指定端口也可以隨機端口。
- 啟動services之后,查看端口
端口為30000,頁面訪問,節(jié)點的ip+30000;
節(jié)點的ip可以為主節(jié)點的ip,也可以為從節(jié)點的ip。
文章來源:http://www.zghlxwxcb.cn/news/detail-465341.html
- 刪除serviecs和pod
#刪除serviecs
kubectl delete -f pod_nginx_rs_svc.yaml
#刪除pod
kubectl delete -f pod_nginx_rs.yaml
完結(jié)?
內(nèi)容主要參考與:【云原生-K8s】kubeadm搭建k8s集群【不成功手把手教學(xué)】
感謝大家的觀看?。?!文章來源地址http://www.zghlxwxcb.cn/news/detail-465341.html
到了這里,關(guān)于【云原生-K8s-1】kubeadm搭建k8s集群(一主兩從)完整教程及kubernetes簡介的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!