概述:
這篇文章是為了介紹使用kubeadm安裝Kubernetes集群(可以用於生產級別)。使用了Centos 7系統。
PS:
篇幅有點長,但是比較詳細、比較全面。(請注意文章最后分享的word文檔,可以解決DNS的問題)
一、Centos7 配置說明
1.1 Firewalld(防火牆)
CentOS Linux 7 默認開起來防火牆服務(firewalld),而Kubernetes的Master與工作Node之間會有大量的網絡通信,安全的做法是在防火牆上配置Kbernetes各組件(api-server、kubelet等等)需要相互通信的端口號。在安全的內部網絡環境中可以關閉防火牆服務。
關閉防火牆的命令:
1 # firewall-cmd --state #查看防火牆狀態 2 # systemctl stop firewalld.service #停止firewall 3 # systemctl disable firewalld.service #禁止firewall開機啟動
如果你不想關閉防火牆,請把以下端口開放(在防火牆開放以下端口)
1.2 SELinux
建議禁用SELinux,讓容器可以讀取主機文件系統
執行命令:
1 # getenforce #查看selinux狀態 2 # setenforce 0 #臨時關閉selinux 3 # sed -i 's/^ *SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config #永久關閉(需重啟系統) 4 # shutdown -r now #重啟系統
二、安裝准備工作
2.1 安裝環境
軟硬件 |
最低配置 |
推薦配置 |
CPU和內存 |
Master: 至少2 Core和4G內存 Node:至少4 Core和16G內存 |
Master:4 core和16G內存 Node:應根據需要運行的容器數量進行配置 |
Linux操作系統 |
基於x86_64架構的各種Linux發行版本,Kernel版本要求在3.10及以上 |
Red Hat Linux 7 CentOS 7 |
說明:
以上為建議配置,實際安裝過程中,Master必須2 core 及以上(否則安裝失敗,切記),Node可以采用1 core。
2.2 部署環境說明
主機列表:
主機名 |
Centos版本 |
ip |
docker version |
flannel version |
Keepalived version |
主機配置 |
備注 |
master01 |
7.6.1810 |
192.168.0.6 |
18.09.9 |
v0.11.0 |
v1.3.5 |
2C2G |
control plane |
work01 |
7.6.1810 |
192.168.0.10 |
18.09.9 |
/ |
/ |
1C2G |
worker nodes |
work02 |
7.6.1810 |
192.168.0.12 |
18.09.9 |
/ |
/ |
1C2G |
worker nodes |
VIP |
7.6.1810 |
192.168.0.130 |
18.09.9 |
v0.11.0 |
v1.3.5 |
4C4G |
在control plane上浮動 |
client |
7.6.1810 |
192.168.0.234 |
/ |
/ |
/ |
4C4G |
client(可不需要) |
共有7台服務器,3台control plane,3台work,1台client。
k8s 版本(可根據需要進行更改):
主機名 |
kubelet version |
kubeadm version |
kubectl version |
備注 |
master01 |
v1.16.4 |
v1.16.4 |
v1.16.4 |
kubectl選裝 |
work01 |
v1.16.4 |
v1.16.4 |
v1.16.4 |
kubectl選裝 |
work02 |
v1.16.4 |
v1.16.4 |
v1.16.4 |
kubectl選裝 |
client |
/ |
/ |
v1.16.4 |
client |
2.3. 配置主機名(master和node節點都執行)
2.3.1 修改主機名
Master主機改為master01,執行以下命令:
1 # hostnamectl set-hostname master01 #修改主機名稱為master01 2 # more /etc/hostname #查看修改結果
同樣的修改node01和node02(注意主機名為node01和node02)
說明:
退出重新登陸即可顯示新設置的主機名master01,重新登錄之后
2.3.2 修改hosts文件
執行以下命令:
cat >> /etc/hosts << EOF
192.168.0.6 master01 192.168.0.10 node01 192.168.0.12 node02 EOF
2.3.3 禁用swap
Kubeadm建議關閉交換空間的使用,簡單來說,執行swapoff -a命令,然后在/etc/fstab中刪除對swap的加載,並重新啟動服務器即可。
臨時禁用,執行以下命令:
# swapoff -a
永久禁用,需要在swapoff -a之后,執行以下命令:
# sed -i.bak '/swap/s/^/#/' /etc/fstab
2.3.4 設置kubernetes源
2.3.4.1 新增kubernetes源
執行以下命令:
# cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF
2.3.4.2 更新緩存
# yum clean all
# yum -y makecache
三、Docker安裝(master和node節點都執行)
注意:
安裝docker之前,最好確認一下,kubernetes支持哪些版本的docker(kubernetes和docker的版本要對應,否則可能會造成重新安裝)。
3.1 卸載/更新已經安裝的Docker
# 卸載docker
#1. 列出安裝過的包
# yum list installed | grep docker
#2. 根據安裝過的包進行卸載
# yum -y remove docker-ce-cli.x86_64 # yum -y remove docker-ce.x86_64 # yum -y remove containerd.io
# 更新docker
# yum -y update docker
3.2 安裝Docker環境
3.2.1 配置docker源
如已安裝過docker,則不需要進行此步驟
# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
3.2.2 安裝依賴包
# yum install -y yum-utils device-mapper-persistent-data lvm2
3.2.3 設置從stable倉庫獲取docker
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3.2.4 安裝Docker
# yum install docker-ce-18.09.9 docker-ce-cli-18.09.9 containerd.io -y
說明:
執行以上命令之前,可以看看docker版本,執行以下命令查看
# yum list docker-ce --showduplicates | sort -r
3.2.5 啟動Docker(並設置為開機啟動)
# systemctl start docker && systemctl enable docker
3.2.6 命令補全
安裝bash-completion
# yum -y install bash-completion
加載bash-completion
# source /etc/profile.d/bash_completion.sh
3.2.7 鏡像加速(並修改Cgoup Driver)
# mkdir -p /etc/docker # tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://usydjf4t.mirror.aliyuncs.com", "https://registry.docker-cn.com"] , "exec-opts": ["native.cgroupdriver=systemd"] } EOF # systemctl daemon-reload # systemctl restart docker
說明:
修改cgroupdriver是為了消除告警:
[WARNING IsDockerSystemdCheck]: detected “cgroupfs” as the Docker cgroup driver. The recommended driver is “systemd”. Please follow the guide at https://kubernetes.io/docs/setup/cri/
四、Keepalived安裝(master節點安裝)
簡介:
為了保證Master的高可用,會使用多個服務器(作為一個Master集群,一般使用3台服務器,每台服務器都需要安裝kube-apiserver、kube-controller-manager、kube-scheduler、etcd等組件),客戶端將會通過負載均衡器進行訪問kube-apiserver(Master服務器)。在不同的平台下,負載均衡的實現方式不同:公有雲一般都有現成的實現方案(這里不進行過多討論);本地集群,可以選擇硬件(例如,F5)或者軟件來實現,kubernetes社區推薦方案HAProxy和Keepalived,其中HAProxy負責負載均衡,而Keepalived負責對HAProxy進行監控和故障切換。
說明:
由於只有一台8核機器,這里沒有使用master集群,也沒有使用HAProxy,但是仍然提供了Keepalived的安裝,以便於使用虛擬IP(192.168.0.130),Node節點可以通過該IP進行訪問Master,即使其他Master加入之后,也是通過虛擬IP進行訪問
4.1 安裝keepalived
# yum -y install keepalived
4.2 keepalived配置
保留默認配置
# mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived_default.conf
寫入新的配置
# cat <<EOF > /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { router_id master01 } vrrp_instance VI_1 { state MASTER interface enp0s3 virtual_router_id 50 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.0.130 } } EOF
說明:
特別注意紅色字體文本,master01是主機名稱(如果有其他主機則使用對應的主機名稱進行替換),enp0s3是網卡名稱(每個linux系統可能不一致),192.168.0.130是虛擬IP
4.3 啟動keepalived
# service keepalived start && systemctl enable keepalived
4.4 VIP查看
在master機器上執行
# ip a
可以看到VIP在master01(目前只有一台master,以后可能會有多個master)上
五、安裝k8s(master和node節點都執行)
5.1 查看kubernetes版本
# yum list kubelet --showduplicates | sort -r
說明:
本文安裝的kubelet版本是1.16.4,該版本支持的docker版本為1.13.1, 17.03, 17.06, 17.09, 18.06, 18.09。
5.2 安裝kubelet、kubeadm和kubectl(注意版本號,根據需要進行改變)
# yum install -y kubelet-1.16.4 kubeadm-1.16.4 kubectl-1.16.4
說明:
- kubelet 運行在集群所有節點上,用於啟動Pod和容器等對象的工具
- kubeadm 用於初始化集群,啟動集群的命令工具
- kubectl 用於和集群通信的命令行,通過kubectl可以部署和管理應用,查看各種資源,創建、刪除和更新各種組件
5.3 啟動kubelet(並設置為開機啟動)
# systemctl enable kubelet && systemctl start kubelet
5.4 命令補全
# echo "source <(kubectl completion bash)" >> ~/.bash_profile # source .bash_profile
5.5 下載鏡像
Kubernetes幾乎所有的安裝組件和Docker鏡像都放在goolge自己的網站上,直接訪問可能會有網絡問題,這里的解決辦法是從阿里雲鏡像倉庫下載鏡像,拉取到本地以后改回默認的鏡像tag。本文通過運行image.sh腳本方式拉取鏡像。
直接執行以下命令(灰色背景部分):
# more image.sh #以下為image.sh文件的內容,如沒有該文件,可以在當前文件下創建文件 #!/bin/bash url=registry.cn-hangzhou.aliyuncs.com/google_containers #阿里雲鏡像倉庫地址,可以按需修改 version=v1.16.4 #安裝的kubernetes的版本(可以按需修改) images=(`kubeadm config images list --kubernetes-version=$version|awk -F '/' '{print $2}'`) for imagename in ${images[@]} ; do docker pull $url/$imagename docker tag $url/$imagename k8s.gcr.io/$imagename docker rmi -f $url/$imagename done
## 執行以下命令進行安裝
# chmod 755 image.sh #給文件授權
# ./image.sh #執行文件
注意:
如果需要下載其他的kubernetes版本,需要修改對應的版本號(紅色字體部分)
5.6 查看已經下載的鏡像
# docker images
六、網絡插件(flannel)配置(Master執行)
本文的k8s網絡使用flannel,該網絡需要設置內核參數bridge-nf-call-iptables=1,修改這個參數需要系統有br_netfilter模塊。
說明:
K8s網絡插件有很多,使用網絡插件之前,要進行判斷是否和系統適配。
6.1 br_netfilter模塊加載
查看br_netfilter模塊:
# lsmod |grep br_netfilter
如果系統沒有br_netfilter模塊則執行下面的新增命令,如有則忽略。
永久新增br_netfilter模塊:
# cat > /etc/rc.sysinit << EOF #!/bin/bash for file in /etc/sysconfig/modules/*.modules ; do [ -x $file ] && $file done EOF
# cat > /etc/sysconfig/modules/br_netfilter.modules << EOF modprobe br_netfilter EOF # chmod 755 /etc/sysconfig/modules/br_netfilter.modules
6.2 內核參數永久修改
# cat <<EOF > /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF # sysctl -p /etc/sysctl.d/k8s.conf
七、初始化Master(Master節點執行)
說明:
Master的kubernetes之前,須先確定要確定的網絡插件(因為可能會影響到初始化的參數),不同的系統可能需要使用不同的網絡插件(Centos 不支持 Calico)。
建議先閱讀網絡插件資料。(Kubernetes所有網絡插件說明:這里)
7.1 創建初始化文件
7.1.1 獲取默認的初始化參數文件
# kubeadm config print init-defaults > init.default.yaml
7.1.2 查看init.default.yaml文件
# cat init.default.yaml
7.1.3 配置初始化文件
創建kubeadm.conf.yaml文件,輸入以下內容:
apiVersion: kubeadm.k8s.io/v1beta2 kind: ClusterConfiguration kubernetesVersion: v1.16.4 apiServer: certSANs: #填寫所有kube-apiserver節點的hostname、IP、VIP - master01 - node01 - node02 - 192.168.0.6 - 192.168.0.10 - 192.168.0.12 - 192.168.0.130 controlPlaneEndpoint: "192.168.0.130:6443" networking: podSubnet: "10.244.0.0/16" #這里需要根據具體的網絡插件來配置(這里使用的flannel網絡插件配置)
說明:
注意紅色字體部分內容,需要根據init.default.yaml文件和自己的需要進行更改
7.2 初始化kubernetes
# kubeadm init --config=kubeadm.conf.yaml
說明:
如果初始化失敗,可執行kubeadm reset后重新初始化(執行以下兩條命令)
# kubeadm reset
# rm -rf $HOME/.kube/config
初始化成功,如下圖:
按照提示執行下面的命令,復制配置文件到普通用戶的home目錄下:
# mkdir -p $HOME/.kube # cp -i /etc/kubernetes/admin.conf $HOME/.kube/config # chown $(id -u):$(id -g) $HOME/.kube/config
在其他位置(或者主機),保存如下信息(其他node節點加入集群時使用):
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/ You can now join any number of control-plane nodes by copying certificate authorities and service account keys on each node and then running the following as root:
kubeadm join 192.168.0.130:6443 --token afeqnz.vhp0e8rtrw6jz6v2 \ --discovery-token-ca-cert-hash sha256:d6a450aafb14e82efb69fbcb71e426bfed8e423d64b37bac85b3ff8ce7dc6562 \ --control-plane Then you can join any number of worker nodes by running the following on each as root: ## node加入集群時使用 kubeadm join 192.168.0.130:6443 --token afeqnz.vhp0e8rtrw6jz6v2 \ --discovery-token-ca-cert-hash sha256:d6a450aafb14e82efb69fbcb71e426bfed8e423d64b37bac85b3ff8ce7dc6562
7.3 加載環境變量
# echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile # source .bash_profile
八、node節點加入集群
8.1 開啟Master節點防火牆端口
說明:
如果master節點的防火牆已經關閉,可以直接跳過此小節
如果node已經加入其它集群,需要退出集群,請執行在node上執行:
# kubeadm reset
查看防火牆狀態:
# systemctl status firewalld 或者 firewall-cmd --state
開啟6443端口
# firewall-cmd --zone=public --add-port=6443/tcp --permanent ## 出現success表明添加成功
命令含義:
--zone #作用域 --add-port=80/tcp #添加端口,格式為:端口/通訊協議 --permanent #永久生效,沒有此參數重啟后失效
重啟防火牆
# systemctl restart firewalld.service
說明:
Kubernetes集群中的Service可使用的物理機端口號范圍為30000~32767
一次全部公開所有可能使用的端口:
# firewall-cmd --zone=public --add-port=30000-32767/tcp --permanent # systemctl restart firewalld.service
8.2 加入集群
Master節點在初始化完成之后,最后一行代碼,如下:
# kubeadm join 192.168.0.130:6443 --token afeqnz.vhp0e8rtrw6jz6v2 \ --discovery-token-ca-cert-hash sha256:d6a450aafb14e82efb69fbcb71e426bfed8e423d64b37bac85b3ff8ce7dc6562
把兩行信息復制出來,在node節點執行,如下圖:(join成功)
在master節點,執行以下命令查看已經加入的節點
# kubectl get nodes
說明:
由於沒有安裝網絡插件,這里STATUS為NotReady
九、安裝網絡插件(Master)
在master主機上執行以下命令:
# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/2140ac876ef134e0ed5af15c65e414cf26827915/Documentation/kube-flannel.yml
說明:
由於網絡原因,可能會安裝失敗,可以在瀏覽器直接下載kube-flannel.yml文件(也可以在瀏覽器打開url地址,然后復制文件內容到文件),然后再執行apply
查看節點狀態,執行以下命令:
# kubectl get nodes
說明:
STATUS從NotReady變為Ready
如安裝網絡插件之后,長時間狀態沒有變更,則可以試試重啟機器(或者是虛擬機,這里是指Centos 7系統)。
十、Client配置(client端執行)
10.1 新增kubernetes源
# cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF
10.2 更新緩存
# yum clean all && yum -y makecache
10.3 安裝kubectl
# yum install -y kubectl-1.16.4
10.4 命令補全
安裝bash- completion
# yum -y install bash-completion
加載bash-completion
# source /etc/profile.d/bash_completion.sh
10.5 從Master節點拷貝admin.conf(注意:如果需要Node上也執行kubectl命令,需要把admin.conf復制到Node上)
# mkdir -p /etc/kubernetes
# scp 192.168.0.6:/etc/kubernetes/admin.conf /etc/kubernetes/
說明:
192.168.0.6 是master主機
# echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile # source .bash_profile
10.6 加載環境變量
# echo "source <(kubectl completion bash)" >> ~/.bash_profile # source .bash_profile
10.7 Kubectl 測試
# kubectl get nodes
# kubectl get cs
# kubectl get po -o wide -n kube-system
十一、Dashboard搭建(client端執行)
11.1 下載yaml
# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml
說明:
如果連接超時,可以多試幾次。也可以在這里下載
11.2 修改鏡像地址
# sed -i 's/kubernetesui/registry.cn-hangzhou.aliyuncs.com\/loong576/g' recommended.yaml
說明:
也可以采用其他的一些鏡像(切換鏡像,需要更改recommended.yaml文件)
更改鏡像操作:
如果需要更改鏡像的版本號,需要在阿里雲查詢一下是否有鏡像
下載鏡像命令:(注意阿里雲是沒有帶版本號的,需要自己錄入版本號)
# docker pull registry.cn-hangzhou.aliyuncs.com/kubernetesui/dashboard:v2.0.0-rc5
11.3 配置yaml
外網訪問
# sed -i '/targetPort: 8443/a\ \ \ \ \ \ nodePort: 30001\n\ \ type: NodePort' recommended.yaml
說明:
配置NodePort,外部通過https://NodeIp:NodePort 訪問Dashboard,此時端口為30001
11.4 新增管理員賬號
創建超級管理員的賬號用於登錄Dashboard
# cat >> recommended.yaml << EOF --- # ------------------- dashboard-admin ------------------- # apiVersion: v1 kind: ServiceAccount metadata: name: dashboard-admin namespace: kubernetes-dashboard --- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRoleBinding metadata: name: dashboard-admin subjects: - kind: ServiceAccount name: dashboard-admin namespace: kubernetes-dashboard roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin EOF
11.5 部署Dashboard
# kubectl apply -f recommended.yaml
狀態查看:
# kubectl get all -n kubernetes-dashboard
令牌查看:
# kubectl describe secrets -n kubernetes-dashboard dashboard-admin
令牌為(一定要注意可能存在換行的情況):
eyJhbGciOiJSUzI1NiIsImtpZCI6IllkWjQxWENEYnBXYV9rUlNqWTRldjVOYXV3M0tPTklYTVZTWUZWOXp0SHMifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdG9rZW4tZzRwdzUiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGFzaGJvYXJkLWFkbWluIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNjNmNzllODUtNzMzMy00MDY1LTg1YTEtYzkxZTkzNjk3ZjA0Iiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmVybmV0ZXMtZGFzaGJvYXJkOmRhc2hib2FyZC1hZG1pbiJ9.vsizK9ZP53to5aL5d1oyFYAiR8Kt1LaQ_Lkt86yPgHp6QloMS_pLCdD7KZi76deQ4ISTFC9Ldc62zslLtY4qgxNvSUiVWj1bWUn2BfCJ-3jPxpd7ZOgr3Gbp2xAFc3xjgm-qZaOydec9i44CbkdiVDoAjL0Au78yt7aHSW8B6plc2fAYNdywtyIOAMhe7f0gjyRaWrGQje2CVduITxZ-2NCwd3EYQNs31OA-zUPFvel_xi_KzdMBuj4z7DdvIK9wPQHyuke0TIs5dHSUEtiY84erLMg5i0ZGXCd019D5Nrsd78fVe_NbO-NThVReskA-jt1FyhAUesZie4GX-2eL3Q
說明:
如果安裝Dashboard過程中出現問題,要仔細進行排查,可能pod還沒有安裝完成,等待一段時間之后,再看看,如果還是不行,則需要考慮一下中途是否有問題,是否需要重新安裝。
如果忘記Token,可以通過以下命令獲取:
# kubectl describe secret -n kubernetes-dashboard $(kubectl get secret -n kubernetes-dashboard |grep kubernetes-dashboard-token | awk '{print $1}') |grep token | awk '{print $2}'
11.6 使用火狐瀏覽器瀏覽
https://192.168.0.6:30001
部署Dashboard之后,由於證書問題導致無法在瀏覽器瀏覽(暫時沒有找到解決方案,嘗試了網上的方式,不行,以下是嘗試的過程(可以跳過))
刪除已經部署的Dashboard
1. kubectl delete ns kubernetes-dashboard
https://github.com/kubernetes/dashboard/releases
2. 閱讀參考資料(並執行命令,除了刪除命令)
https://blog.51cto.com/10616534/2430512
十二、查找問題方式
12.1 查看Pod詳細信息
查看所有Pod
# kubectl get pods --all-namespaces
查看Pod日志(使用真實的pod名稱,替換pod-name)
# kubectl logs pod-name --all-containers=true
查看狀態異常的Pod的詳細信息
# kubectl describe pod kubernetes-dashboard-8478d57dc6-p7jt7 --namespace=kubernetes-dashboard
說明:
可以看到在哪台Node上創建了容器
12.2 防火牆的問題
建議關閉防火牆
# systemctl stop firewalld.service
# systemctl disable firewalld.service
說明:
如果不關閉防火牆,可能會造成容器產生錯誤,如no host to route,是因為防火牆攔截了端口。
12.3 Dashboard 證書過期問題
12.4 Node節點執行kubectl命令出錯問題
錯誤描述信息:
The connection to the server raw.githubusercontent.com was refused - did you specify the right host or port?
需要將master節點的 /etc/kubernetes/admin.conf 文件復制到node節點下。
參考資料
Kubernetes的安裝:
https://www.kubernetes.org.cn/6632.html
CentOS Linux 開放端口:
https://www.cnblogs.com/archoncap/p/5402983.html
Kubernetes所有網絡插件說明:
https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/#pod-network
PS:
最后分享一個問題的解決方案(在發布網站/應用的時候可能需要),下載
如果您在使用該文章進行安裝kubernetes集群時遇到問題,請在下方留言,我看到后會及時回復。
--------------------------------------------------------------------------------------------------------
2020-04-20 補充
官網安裝資料:
http://docs.kubernetes.org.cn/457.html(中文版,低版本,作為參考)
http://docs.kubernetes.org.cn/459.html(中文版,低版本,作為參考)
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ (英文版,最新版本)