Kubernetes在2019年9月18日發(fā)布了年度的第三個版本1.16,這篇文章介紹一下如何使用Easypack的Ansible腳本方式在CentOS7上完成Kubernetes的一鍵安裝。
環(huán)境構(gòu)成說明
設(shè)定項(xiàng) | 詳細(xì)信息 |
---|---|
構(gòu)成 | 一主一從(同一臺機(jī)器) |
IP | 192.168.163.132 |
網(wǎng)卡名稱 | enp0s3 |
Kubernetes | 1.16.0 |
Docker | 18.09.7 |
ETCD | 3.3.13 |
FLANNEL | 0.10.0 |
安裝步驟
步驟1:下載easypack
[root@host132 tmp]# git clone https://github.com/liumiaocn/easypack.git
Cloning into ‘easypack’…
…省略
[root@host132 tmp]#
步驟2: 下載相關(guān)離線二進(jìn)制文件
注:目前直接使用download的role,會下載并打包生成1.15的kubernetes相關(guān)的二進(jìn)制文件,然后手動下載kubernetes的二進(jìn)制文件進(jìn)行替換即可,下載目錄為:
https://dl.k8s.io/v1.16.0/kubernetes-server-linux-amd64.tar.gz
步驟3: 調(diào)整配置
只需要修改common_vars.yml的如下兩處設(shè)定即可
設(shè)定項(xiàng) | 設(shè)定參數(shù) | 設(shè)定值 |
---|---|---|
var_all_in_one_hostip | Master節(jié)點(diǎn)IP地址 | 192.168.163.132 |
var_flannel_opt_iface | 網(wǎng)卡名稱 | enp0s3 |
步驟4: 一鍵安裝
前提條件
條件1: 安裝ansible,建議版本2.4.2.0或以上
條件2: 本機(jī)連接的ssh設(shè)定完畢,簡單來說ssh-copy-id 192.168.163.132(請使用本機(jī)IP)執(zhí)行完成
安裝命令:
ansible-playbook 10.all-in-one.yml
安裝示例
[root@host132 ansible]# ansible-playbook 10.all-in-one.yml
PLAY [all-in-one] **********************************************************************************************************************
TASK [clean : stop etcd service] *******************************************************************************************************
…省略
TASK [dashboard : create clusterrolebinding for dashboard] *****************************************************************************
changed: [localhost]
PLAY RECAP *****************************************************************************************************************************
localhost : ok=103 changed=95 unreachable=0 failed=0
[root@host132 ansible]#
結(jié)果確認(rèn)
版本確認(rèn)
[root@host132 ansible]# kubectl version
Client Version: version.Info{Major:”1″, Minor:”16″, GitVersion:”v1.16.0″, GitCommit:”2bd9643cee5b3b3a5ecbd3af49d09018f0773c77″, GitTreeState:”clean”, BuildDate:”2019-09-18T14:36:53Z”, GoVersion:”go1.12.9″, Compiler:”gc”, Platform:”linux/amd64″}
Server Version: version.Info{Major:”1″, Minor:”16″, GitVersion:”v1.16.0″, GitCommit:”2bd9643cee5b3b3a5ecbd3af49d09018f0773c77″, GitTreeState:”clean”, BuildDate:”2019-09-18T14:27:17Z”, GoVersion:”go1.12.9″, Compiler:”gc”, Platform:”linux/amd64″}
[root@host132 ansible]#
節(jié)點(diǎn)確認(rèn)
[root@host132 ansible]# kubectl get node -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
192.168.163.132 Ready <none> 81s v1.16.0 192.168.163.132 <none> CentOS Linux 7 (Core) 3.10.0-957.el7.x86_64 docker://18.9.7
[root@host132 ansible]#
coredns與dashboard服務(wù)確認(rèn)
[root@host132 ansible]# kubectl get services -n kube-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kube-dns ClusterIP 10.254.0.2 <none> 53/UDP,53/TCP 2m15s
kubernetes-dashboard NodePort 10.254.28.13 <none> 443:33307/TCP 110s
[root@host132 ansible]#
[root@host132 ansible]# kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-59db588569-mx6vw 1/1 Running 0 2m24s
kubernetes-dashboard-7c54d59f66-l2pqx 1/1 Running 0 119s
[root@host132 ansible]#
dashboard的token確認(rèn)
[root@host132 ansible]# dashboard_secret=`kubectl get secrets -n kube-system | grep dashboard-admin | awk ‘{print $1}’`
[root@host132 ansible]# kubectl describe secret -n kube-system ${dashboard_secret} | grep -E ‘^token’ | awk ‘{print $2}’
eyJhbGciOiJSUzI1NiIsImtpZCI6Imt2OG1UdHFzT0t5Tnp6VjRtNlZORmt6Tk5LRzhFRG01WTlXaU16LUVZNFkifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdG9rZW4tNzdsbDgiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGFzaGJvYXJkLWFkbWluIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiZDk1NmJjYzItN2ZiNS00NDdmLThlNWEtNjM3ZTQ2NmNkOTc3Iiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmRhc2hib2FyZC1hZG1pbiJ9.sImW-gcsHr7NJjEbIOOO1TRB0ZlF-CFRb9AXq8O38qf9E0xSZPUXeRFf8i9AST1HDZn8ugAv77TVtzj8AJaL4hxz6LylQpjhkpBxkpRMA7A7V8nhaYPxSvZUJBSpj_h2NcXNrpj7m0_V0axk9VguE_kcuTWlr2sR7x35Xmf-lxWS0yQAUkvaX26F59IBVCXZ2_A5cHWbfBvufBcGPrhKuVfJiHTUyDLha37Ze1OCCsPJP-HDnwniJsdIac89M9w9QZ1qNrtRXAlKLN24pXg_Ki5dkmYU4ImkF4YRsHAfzqkmaYHc-UoKUzJET1UqjHyqKoK64JuNHeer4RwADBF7CQ
[root@host132 ansible]#
dashboard確認(rèn)
使用https://localhost:33307登陸dashboard界面,選擇token方式,并粘貼上述token信息
登陸之后即可看到dashboard可視化界面展示的Kubernetes相關(guān)的信息
常見問題 見 http://www.sfodin.cn/Linux/2019-09/160728.htm