Ubuntu搭建三節(jié)點(diǎn)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)因網(wǎng)站服務(wù)器在境外,故須使用代理或換源,下面首先演示如何添加代理。

編輯代理文件

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是代理服務(wù)器地址,port是代理服務(wù)器端口。根據(jù)自己情況填寫。

如果沒有條件使用代理,可以進(jìn)行換源。

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

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

修改sources.list文件

sudo vim /ect/apt/sources.list

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

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í)行時(shí)間太長則進(jìn)入其中的鏈接,下載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)使用虛擬機(jī)再完整克隆兩個(gè)Ubuntu系統(tǒng),共計(jì)3個(gè)節(jié)點(diǎn)。

(5)配置IP

編輯/etc/network/interfaces

sudo vim /etc/network/interfaces

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

# 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)三個(gè)節(jié)點(diǎn)選擇一個(gè)為master,其他分別為node1和node2。

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

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

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

通過下列命令拉取相關(guān)鏡像

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命令來修改鏡像的標(biāo)簽

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

具體版本及標(biāo)簽信息根據(jù)之前的報(bào)錯提示修改。

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

注意,此時(shí)應(yīng)切換到普通用戶。

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

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

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

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

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

kubectl get nodes

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

(10)節(jié)點(diǎn)ready

節(jié)點(diǎn)的NotReady,是因?yàn)楣?jié)點(diǎn)需要啟動若干組件,這些組件是在 Pod 中運(yùn)行,需要首先從 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

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

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

此時(shí),所有的節(jié)點(diǎn)都已經(jīng) Ready,Kubernetes Cluster 創(chuàng)建成功。


最新免費(fèi)java,架構(gòu),大數(shù)據(jù)AI編程資料獲取添加

薇信:18410263200

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


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

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容