溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker之k8s如何部署

發(fā)布時間:2021-08-21 09:36:15 來源:億速云 閱讀:139 作者:小新 欄目:服務器

小編給大家分享一下Docker之k8s如何部署,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

準備工作系統(tǒng)

安裝Ubuntu 14.04 LTS 64bit server版本系統(tǒng),配置好hostname和ip。
在更新國內的軟件源的時候,由于GFW的原因,經常會出現(xiàn)md5校驗錯誤,建議使用阿里云的源。

Docker

在minion節(jié)點上安裝Docker,版本需要在1.2+,此處安裝的是1.7.1。安裝方法參見Docker安裝(Ubuntu 64bit) 。
安裝好Docker之后,我們最好還配置一個國內的registry mirror,加快鏡像拉取速度,參考配置國內免費registry mirror。

Google pause

給每個minion下載Google pause鏡像。之后的工作會用到gcr.io/google_containers/pause鏡像,國內用戶由于GFW問題總是會出錯,所以我們先從docker.io下載pause鏡像,并設置tag。

# docker pull docker.io/kubernetes/pause
# docker tag kubernetes/pause gcr.io/google_containers/pause:0.8.0
# docker tag gcr.io/google_containers/pause:0.8.0 gcr.io/google_containers/pause

SSH

需要所有minion節(jié)點都能從master節(jié)點直接登錄,不用密碼。

在master節(jié)點上進行如下操作:

$ ssh-keygen
$ ssh-copy-id user@192.168.0.201
$ ssh-copy-id user@192.168.0.202
$ ssh-copy-id user@192.168.0.203

部署集群

下載

下載部署腳本及二進制文件。

首先從K8S的github倉庫中下載部署腳本。

$ git clone https://github.com/kubernetes/kubernetes.git

修改各組件的版本,下載所有組件的二進制文件。此處我們使用etcd 2.2.0,flannel 0.5.0,k8s 1.0.6。

$ cd kubernetes/cluster/ubuntu
$ vim build.sh #修改版本號
 # version setting
 FLANNEL_VERSION="0.5.0"
 ETCD_VERSION="2.2.0"
 KUBE_VERSION="1.0.6"
$ ./build.sh

有時候使用非root賬戶下載會出現(xiàn)錯誤,此時我們可以切換到root權限下下載,完成之后再使用chown命令將文件權限設置為原來的賬戶。

目錄binaries中出現(xiàn)如下結構則表示成功。

Docker之k8s如何部署

配置

打開cluster/ubuntu/config-default.sh文件,修改如下字段:

export nodes=${nodes:-"wangtao@192.168.0.201 wangtao@192.168.0.202 wangtao@192.168.0.203"}

export role=${role:-"a i i"}

export NUM_MINIONS=${NUM_MINIONS:-2}

export SERVICE_CLUSTER_IP_RANGE=${SERVICE_CLUSTER_IP_RANGE:-10.0.1.0/24}

export FLANNEL_NET=${FLANNEL_NET:-172.16.0.0/16}

如果需要master節(jié)點也作為minion節(jié)點的話,只需將role中的a改為ai即可,NUM_MINIONS表示minion節(jié)點的個數(shù)。

service_cluster_ip_range表示集群中service所對應的IP范圍。
flannel_net表示pod所分配的IP范圍。

部署

進到cluster/目錄下進行如下操作,

$ export KUBERNETES_PROVIDER=ubuntu
$ ./kube-up.sh

接下來腳本就會將二進制文件拷貝到相應的節(jié)點上,不過在運行服務的時候需要root權限,所以需要我們?yōu)槊恳粋€節(jié)點輸入一次密碼。

測試

我們可以使用kubectl工具進行測試是否安裝成功。

首先我們把kubectl的路徑加入到PATH中,然后我們就可以直接使用該命令了。

Docker之k8s如何部署

我們啟動一個Redis服務試一試。

進入examples/guestbook目錄,修改redis-master-controller.yaml文件如下:

apiVersion: v1
kind: ReplicationController
metadata:
 name: redis-master
 labels:
 name: redis-master
spec:
 replicas: 2
 selector:
 name: redis-master
 template:
 metadata:
  labels:
  name: redis-master
 spec:
  containers:
  - name: master
  image: redis
  ports:
  - containerPort: 6379

然后運行如下命令啟動Redis。

$ kubectl create -f redis-master-controller.yaml

然后使用kubectl get rckubectl get pods 查看是否成功。

Docker之k8s如何部署

如果每個pod的狀態(tài)都為Running則部署成功。

這里可能會遇到pod狀態(tài)一直處于Penning的問題,此時可以通過kubectl describe pods/pod-name來查看pod信息,如果沒有出錯信息,那么Minion一直處于下載鏡像中,下載好之后pod即會成功啟動。

動態(tài)管理Cluster

如果集群已經部署好,我們希望能夠動態(tài)地添加和刪除Minion節(jié)點。

一種方法是,使用kube-down.sh將所有節(jié)點停掉之后,修改config-default.sh文件,將新添加的節(jié)點信息加入進去,或者刪掉不用的節(jié)點信息,然后再使用kube-up.sh腳本重新啟動。

當然我們希望能夠在不關掉已有節(jié)點的情況下動態(tài)添加新的Minion節(jié)點,但是目前我還沒找到方法。

以上是“Docker之k8s如何部署”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI