Ubuntu搭建三節(jié)點k8s集群

1.安裝docker

(1)首先更新apt包資源索引

apt-get update

(2)安裝軟件包

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

(3)添加Docker官方的GPG

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

(4)添加Docker源

sudo add-apt-repository \

"deb [arch=amd64] https://download.docker.com/linux/ubuntu \

$(lsb_release -cs) \

stable"

(5)因網站服務器在境外,故須使用代理或換源,下面首先演示如何添加代理。

編輯代理文件

vim /etc/apt/apt.conf

做如下修改

Acquire::http::proxy "http://username:password@server_ip:port/";

Acquire::https::proxy "https://username:password@server_ip:port/";

Acquire::ftp::proxy "ftp://username:password@server_ip:port/";

Acquire::socks::proxy "socks://username:password@server_ip:port/";

其中username和password是代理賬號和密碼,server_ip是代理服務器地址,port是代理服務器端口。根據自己情況填寫。

如果沒有條件使用代理,可以進行換源。

備份原有的軟件源配置文件sources.list:

cp /etc/apt/sources.list /etc/apt/sources.list.bk

修改sources.list文件

sudo vim /ect/apt/sources.list

換成阿里的鏡像源(也可自行尋找其他國內源)

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

更新軟件源

sudo apt-get update

(6)安裝docker

sudo apt-get update

sudo apt-get install docker-ce=18.06.0~ce~3-0~ubuntu

2.搭建k8s集群

(1)添加GPG

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

若該命令不成功或者執(zhí)行時間太長則進入其中的鏈接,下載apt-key.gpg, 然后執(zhí)行如下命令:

apt-key add apt-key.gpg

(2)添加源

cat </etc/apt/sources.list.d/kubernetes.list

deb http://apt.kubernetes.io/ kubernetes-xenial main

EOF

(3)下載kubelet kubeadm kubectl組件

apt-get update

apt-get install -y kubelet kubeadm kubectl

(4)使用虛擬機再完整克隆兩個Ubuntu系統(tǒng),共計3個節(jié)點。

(5)配置IP

編輯/etc/network/interfaces

sudo vim /etc/network/interfaces

將文件改為如下內容(IP地址等內容自行編輯)

# interfaces(5) file used by ifup(8) and ifdown(8)

auto lo

iface lo inet loopback

auto ens33

iface ens33 inet static

address 192.168.222.22

netmask 255.255.255.0

gateway 192.168.222.222

nameserver 8.8.8.8

ens33為連接名,可以通過ifconfig命令查看。

(6)三個節(jié)點選擇一個為master,其他分別為node1和node2。

在master上執(zhí)行初始化命令

kubeadm init --kubernetes-version=v1.15.0 --pod-network-cidr=10.244.0.0/16

如提示鏡像無法下載,則需要手動下載鏡像。

通過下列命令拉取相關鏡像

docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.15.0

docker pull mirrorgooglecontainers/kube-controller-manager-amd64:v1.15.0

docker pull mirrorgooglecontainers/kube-scheduler-amd64:v1.15.0

docker pull mirrorgooglecontainers/kube-proxy-amd64:v1.15.0

docker pull mirrorgooglecontainers/pause:3.1

docker pull mirrorgooglecontainers/etcd-amd64:3.2.18

docker pull coredns/coredns:1.3.0

通過docker tag命令來修改鏡像的標簽

docker tag docker.io/mirrorgooglecontainers/kube-proxy-amd64:v1.15.0 k8s.gcr.io/kube-proxy-amd64:v1.15.0

docker tag docker.io/mirrorgooglecontainers/kube-scheduler-amd64:v1.15.0 k8s.gcr.io/kube-scheduler-amd64:v1.15.0

docker tag docker.io/mirrorgooglecontainers/kube-apiserver-amd64:v1.15.0 k8s.gcr.io/kube-apiserver-amd64:v1.15.0

docker tag docker.io/mirrorgooglecontainers/kube-controller-manager-amd64:v1.15.0 k8s.gcr.io/kube-controller-manager-amd64:v1.15.0

docker tag docker.io/mirrorgooglecontainers/etcd-amd64:3.2.18 k8s.gcr.io/etcd-amd64:3.2.18

docker tag docker.io/mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1

docker tag docker.io/coredns/coredns:1.3.0 k8s.gcr.io/coredns:1.3.0

具體版本及標簽信息根據之前的報錯提示修改。

(7)根據初始化成功信息提示的命令在master上執(zhí)行部分操作。

注意,此時應切換到普通用戶。

(8)添加 k8s-node1 和 k8s-node2

在 k8s-node1 和 k8s-node2 上分別執(zhí)行如下命令,將其注冊到 Cluster 中

kubeadm join --token d38a01.13sd654sdf546d80 192.168.56.105:6443

這里的 --token 來自前面 kubeadm init 輸出初始化成功后的提示,如果當時沒有記錄下來可以通過 kubeadm token list 查看。

(9)查看節(jié)點的狀態(tài)

kubectl get nodes

無論這里node1,node2是Ready,還是NotReady,都是節(jié)點加入成功了。

(10)節(jié)點ready

節(jié)點的NotReady,是因為節(jié)點需要啟動若干組件,這些組件是在 Pod 中運行,需要首先從 google 下載鏡像,我們可以通過命令查看 Pod 的狀態(tài)

kubectl get pod --all-namespaces

Pending、ContainerCreating、ImagePullBackOff 都表明 Pod 沒有就緒,Running 才是就緒狀態(tài)。

查看 Pod 具體情況

kubectl describe pod kube-flannel-ds-v0p3x --namespace=kube-system

根據所提示的錯誤具體解決。比如在下載 image 時失敗,可以自己手動執(zhí)行 docker pull 去下載這個鏡像。

問題解決后,所有 Pod 會處于 Running 狀態(tài)。

此時,所有的節(jié)點都已經 Ready,Kubernetes Cluster 創(chuàng)建成功。

最新免費java,架構,大數(shù)據AI編程資料獲取添加

薇信:18410263200

通過驗證填寫“111”(備注必填)


?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容