您好,登錄后才能下訂單哦!
這篇文章主要介紹了怎么用Docker部署k8s的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇怎么用Docker部署k8s文章都會有所收獲,下面我們一起來看看吧。
拓撲結構
1master + 2minion
k8s-master 192.168.0.201 master
k8s-node1 192.168.0.202 minion
k8s-node2 192.168.0.203 minion
準備工作系統
安裝ubuntu 14.04 lts 64bit server版本系統,配置好hostname和ip。
在更新國內的軟件源的時候,由于gfw的原因,經常會出現md5校驗錯誤,建議使用的源。
docker
在minion節點上安裝docker,版本需要在1.2+,此處安裝的是1.7.1。安裝方法參見docker安裝(ubuntu 64bit) 。
安裝好docker之后,我們最好還配置一個國內的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節點都能從master節點直接登錄,不用密碼。
在master節點上進行如下操作:
$ 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賬戶下載會出現錯誤,此時我們可以切換到root權限下下載,完成之后再使用chown命令將文件權限設置為原來的賬戶。
目錄binaries中出現如下結構則表示成功。
配置
打開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節點也作為minion節點的話,只需將role中的a改為ai即可,num_minions表示minion節點的個數。
service_cluster_ip_range表示集群中service所對應的ip范圍。
flannel_net表示pod所分配的ip范圍。
部署
進到cluster/目錄下進行如下操作,
$ export kubernetes_provider=ubuntu $ ./kube-up.sh
接下來腳本就會將二進制文件拷貝到相應的節點上,不過在運行服務的時候需要root權限,所以需要我們為每一個節點輸入一次密碼。
測試
我們可以使用kubectl工具進行測試是否安裝成功。
首先我們把kubectl的路徑加入到path中,然后我們就可以直接使用該命令了。
我們啟動一個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 rc
和 kubectl get pods
查看是否成功。
如果每個pod的狀態都為running則部署成功。
這里可能會遇到pod狀態一直處于penning的問題,此時可以通過kubectl describe pods/pod-name
來查看pod信息,如果沒有出錯信息,那么minion一直處于下載鏡像中,下載好之后pod即會成功啟動。
動態管理cluster
如果集群已經部署好,我們希望能夠動態地添加和刪除minion節點。
一種方法是,使用kube-down.sh將所有節點停掉之后,修改config-default.sh文件,將新添加的節點信息加入進去,或者刪掉不用的節點信息,然后再使用kube-up.sh腳本重新啟動。
關于“怎么用Docker部署k8s”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“怎么用Docker部署k8s”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。