樓主: MadPecker

体彩江苏7位数第18178期: Kubernetes平臺的安裝詳解

6
回復
461
查看
打印 上一主題 下一主題
[復制鏈接]

体彩江苏7位数18148 www.zyvyo.com 5

主題

5

帖子

46

安幣

初級碼農

Rank: 1

樓主
發表于 2019-6-3 15:01:25 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
1. 概述
Kubernetes是Google開源的一個容器編排引擎,它支持自動化部署、大規??繕燜?、應用容器化管理。在生產環境中部署一個應用程序時,通常要部署該應用的多個實例以便對應用請求進行負載均衡。


在Kubernetes中,我們可以創建多個容器,每個容器里面運行一個應用實例,然后通過內置的負載均衡策略,實現對這一組應用實例的管理、發現、訪問,而這些細節都不需要運維人員去進行復雜的手工配置和處理,本文章將介紹Kubernetes平臺的安裝過程。
1.1. 環境準備
Kubernetes安裝在Ubuntu、CentOS這兩個環境上較為穩定,本次安裝將以Ubuntu環境為例(CentOS環境也類似),準備兩臺Ubuntu虛擬機或云服務器,版本為16.04即可。
2.安裝Docker&Kubernetes2.1. 安裝Docker2.1.1 添加Docker官方源
1)更新包索引:
apt-get update

2)下載docker官方源的公鑰并添加到apt的公鑰庫中:
curl-fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -

3)添加docker官方源的倉庫:
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"


4)執行完以上命令之后,在/etc/apt/sources.list文件中將添加如下內容

5)再次更新包索引:
apt-get update

2.1.1 安裝Docker
這里以安裝docker-ce-17.03.2版本為例:

1)執行:
apt-get install docker-ce=17.03.2~ce-0~ubuntu-xenial,安裝Docker;

2)驗證Docker安裝結果:
dockerversion

3)查看docker后臺服務運行的情況:
systemctl status docker


至此,Docker安裝完成。


2.2. 安裝Kubernetes2.2.1 Kubernetes相關組件介紹
需要下載kubeadm、kubelet、kubectl等組件

1) kubeadm:作為安裝工具來引導啟動集群,kubeadm將kubernetes核心組件以容器化的方式安裝和引導啟動運行;

2) kubelet:Node組件中的

kubelet依舊以主機后端服務的形式運行kubernetes集群的所有節點上,是主節點與從節點交互的關鍵組件;
3) kubectl:是安裝集群后的命令行工具,至少安裝在master上,對集群進行管理。

2.2.2 添加Kubernetes的apt源(google官方源)
以下將直接添加google的官方源(如果你的服務器不能訪問google官方源,請參考2.2.3)

1)添加kubernetes apt源的公鑰文件:
curl-s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

2)將官方源列表加入到本地源列表配置目錄中:
vi /etc/apt/sources.list.d/kubernetes.list,在該文件中加入如下內容:


3)更新本地包緩存:apt-get update

2.2.3 添加Kubernetes的apt源(國內源)
1) apt-get update && apt-get install -y apt-transport-https
2) curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
3) vi /etc/apt/sources.list.d/kubernetes.list,在該文件中加入:deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main

4)更新本地包緩存:
apt-get update

2.2.4 安裝kubeadm、kubelet、kubectl工具
1) apt-get install -y kubelet kubeadm kubectl
2) apt-get install kubeadm=1.10.2-00 kubectl=1.10.2-00 kubelet=1.10.2-00
(安裝指定版本)

3)
查看安裝情況:


查看版本:kubeadm version


查看版本:kubectl version


查看運行狀態:systemctl status kubelet,此時看到的狀態,不是running的狀態,是激活狀態,處于定期的重啟狀態,這是由于kubelet所需要的配置還沒有提供,只有在master節點執行kubeadm init或者在work node節點執行kubeadm join的時候,kubelet所需要的配置才能被滿足,kubelet才會正常運行起來。

2.2.5 下載核心組件鏡像
默認情況下kubeadm在安裝引導集群時,會自動從網絡上下載kubernetes的核心組件,比如:apiserver,scheduler,controller manager,kubeproxy等,但是默認是從k8s.gcr.io(google
容器鏡像平臺)上下載,國內無法連接。Master節點需要現在如下核心組件:


1)先從國內源(可以從dockerhub上查找)將以上核心組件下載到本地,例如:docker pull gcrxio/kube-apiserver-amd64:v1.14.1

2)重新打標簽,例如:docker tag gcrxio/kube-apiserver-amd64:v1.14.1 k8s.gcr.io/kube-apiserver-amd64:v1.14.1

3)在Worker節點只需要下載pause和kube-proxy鏡像即可。

2.2.6 初始化Master節點
1)執行kubeadm init命令初始化:kubeadm init --apiserver-advertise-address=172.16.154.177 --pod-network-cidr=192.168.16.0/20,
如下圖:


2)設置kubectl訪問控制平面,設置環境變量:export
KUBECONFIG=/etc/kubernetes/admin.conf

3)查看安裝情況:kubectl get pods -n kube-system



以上除了dns,其他的組件都是running狀態,dns要等到安裝了網絡插件之后才正常。

2.2.7 安裝網絡插件
Kubernetes的網絡插件很多,這里以安裝Weave為例:

1)安裝Weave Net

kubectl apply -f https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')
2)創建weave.yaml文件,如下:


3)執行命令進行安裝:Kubectl apply -f weave.yaml

4)驗證安裝結果:kubectl get pods -n kube-system


2.2.8 安裝worker節點
1)按照前面的步驟,在worker節點上(比如是k8s2)安裝docker環境

2)按照前面的步驟,在k8s2節點上安裝kubeadm、kubelet

3)按照前面的步驟,在k8s2節點上下載pause和kube-proxy鏡像

2.2.9 將worker節點加入集群
1)在k8s2節點上執行kubeadm join命令:kubeadm join
172.16.154.178:6443 --token ab7j9d.rxopqtvyv7qf6488 --discovery-token-ca-cert-hash
sha256:c0d784704724ea4be3b7bb31a61404aa05a591b596405699e7c36fe3a500bec9


自此,Kubernetes集群已經安裝完成。


2.3. 安裝Dashboard2.3.1 下載dashboard鏡像文件
1) docker pull gcrxio/kubernetes-dashboard-amd64:v1.10.1
2) docker tag gcrxio/kubernetes-dashboard-amd64:v1.10.1
k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1
2.3.2 安裝dashboard
1)下載dashboard配置文件,執行如下命令:
curl-L https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml > kubernetes-dashboard.yaml

2)修改dashboard配置文件kubernetes-dashboard.yaml,并在此文件中的Service部分下添加
type: NodePort和nodePort: 31233,這里的31233端口可以根據實際情況進行設置,如下圖:


3)創建Pod,執行命令:
kubectl create -f {path}/kubernetes-dashboard.yaml

2.3.3 訪問dashboard
下載dashboard配置文件,執行如下命令:curl-L

1)訪問地址:https://47.97.249.8:31233


本人創業團隊產品MadPecker,主要做BUG管理、測試管理、應用分發,網址:www.madpecker.com,有需要的朋友歡迎試用、體驗!
本文為MadPecker團隊技術人員編寫,轉載請標明出處


分享到:  QQ好友和群 QQ空間 微信
收藏
收藏0
支持
支持0
反對
反對0

92

主題

9627

帖子

1970

安幣

Android大神

Rank: 6Rank: 6

沙發
發表于 2019-6-4 18:21:08 | 只看該作者
安卓巴士是個不錯的網站,我來頂個貼~

443

主題

1197

帖子

1959

安幣

手工藝人

板凳
發表于 2019-6-4 18:29:18 | 只看該作者
樓主威武,以后多發干貨,多辦活動~!

6

主題

9575

帖子

2876

安幣

Android大神

Rank: 6Rank: 6

地板
發表于 2019-6-4 18:29:58 | 只看該作者
幫幫頂頂??!

325

主題

1013

帖子

709

安幣

手工藝人

5#
發表于 2019-6-4 18:43:39 | 只看該作者
樓主是好人,回個帖會有安幣嗎?

3

主題

7235

帖子

1746

安幣

Android大神

Rank: 6Rank: 6

6#
發表于 2019-6-4 18:47:38 | 只看該作者
樓主威武,以后多發干貨,多辦活動~!
7#
發表于 2019-6-4 18:51:53 | 只看該作者
支持,感謝,祝巴士越來越好~
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

領先的中文移動開發者社區
18620764416
7*24全天服務
意見反?。[email protected]

掃一掃關注我們

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粵ICP備15117877號 )