1. 前置要求
- 硬體條件 三台主機 1主2從- 硬體配置 master 2核4G slave 2核2G
2. 安裝
- 通路GitHub 倉庫 https://github.com/lework/kainstall - 運作以下腳本
bash -c "$(curl -sSL https://cdn.jsdelivr.net/gh/lework/kainstall@master/kainstall-centos.sh)" \
\- init \
--master 192.168.147.128 \
--worker 192.168.147.132,192.168.147.133 \
--user root \
--password 123123 \
--port 22 \
--version 1.20.6
- 經過漫長的等待 ,會有提示資訊,然後輸入k8s的管理指令确認kubectl cluster-info是否運作正常,如果不成功,檢視下面的日志檔案進行排坑
xzO3coGy8vsFtAkZHLsTiFAWzjYZXKIZZx-cxaZvpYfzO-uNPa3UcFL2aKiqNS0Hr-kjHhFhcMxxH-yWuwodZYn4qzeI1ZIV_-Cg1wte1s3Covb15g
[ops] etcd backup directory: /var/lib/etcd/backups
See detailed log >>> /tmp/kainstall.t2964vNRW6/kainstall.log
3. 安裝dashboard
- 前往github https://github.com/kubernetes/dashboard ,找到下載下傳說明
- 下載下傳
kubectl apply -f
https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml3. 檢視dashboard是否運作kubectl get pod --namespace=kube-system,如下日志資訊
NAME READY STATUS RESTARTS AGE
coredns-8496bbfb78-7l9gs 1/1 Running 1 118m
coredns-8496bbfb78-r87cr 1/1 Running 1 118m
default-http-backend-6946487d9b-rshx5 1/1 Running 1 119m
etcd-k8s-master-node1 1/1 Running 1 122m
etcd-snapshot-1625813807-5s5xf 0/1 Completed 0 118m
kube-apiserver-k8s-master-node1 1/1 Running 1 122m
kube-controller-manager-k8s-master-node1 1/1 Running 1 122m
kube-flannel-ds-9pg5p 1/1 Running 1 121m
kube-flannel-ds-whbxz 1/1 Running 1 121m
kube-flannel-ds-xxggv 1/1 Running 1 121m
kube-proxy-cpnnx 1/1 Running 1 121m
kube-proxy-fv62v 1/1 Running 1 121m
kube-proxy-t29xk 1/1 Running 1 121m
kube-scheduler-k8s-master-node1 1/1 Running 1 122m
metrics-server-998c79b89-qzsmj 0/1 Running 1 120m
- 啟動代理kubectl proxy
- 在本地進行ssh正向代理,記得配置免密
ssh -L localhost:8001:localhost:8001 -NT [email protected]
- 通路網頁出現如下内容,說明服務啟動完成
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicGcq5SZlFWN4ITYkFzYzEWM4ATO4Y2Y0IzMzUWOhFzNmZGOw8CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.jpg)
建立dashboard使用者
- 建立使用者
kubectl create serviceaccount dashboard-admin -n kube-system
- 授權 (綁定使用者為叢集管理使用者)
kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
- 檢視token
kubectl describe -n=kube-system secret dashboard-admin-token-qqrjx
-
- 詳細資訊,複制token
Name: dashboard-admin-token-qqrjx
Namespace: kube-system
Labels:
Annotations: kubernetes.io/service-account.name: dashboard-admin
• kubernetes.io/service-account.uid: e3b577a7-fd60-4705-bfe9-df87d88b97f5
Type: kubernetes.io/service-account-token
Data
====
ca.crt: 1066 bytes
namespace: 11 bytes
token: eyJhbGciOiJSUzI1NiIsImtpZCI6InhiLTVQTjBLVHRkd24zNkd5QWVXWXNZaUI0M0FyVkZBNWI4S0pXRWZta2MifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdG9rZW4tcXFyangiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGFzaGJvYXJkLWFkbWluIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiZTNiNTc3YTctZmQ2MC00NzA1LWJmZTktZGY4N2Q4OGI5N2Y1Iiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmRhc2hib2FyZC1hZG1pbiJ9.IrVjifmz2Ka0utLv17jKxdtGXG2A6XvmqIO9tcLwTSmYcsnnsUYdKDV-nKzQt7RZZmsbdangCxHOSFNN-bFVyzltHgmnCji4ViJgsgG1ATw7GAAoZBcydm-1sf9XUoQvvXJ7pX-sthpXbPjAItzfoNw5I6Re4DniuhAqsMxjqiOCkreFhV-vc0uww88InPlrfuvYesonj_L0hJnrZJOZbJ7r1QPrery3x9PfGP7F19OMTUfe_iPIu_GFhED8u6aN8OR_uhDSE_EII1zQuLWYV6ksuaxG5s-RNfmJqLfG-HnEwJheJZ_63ceA-j4N4imZ_nNozUAC732ec4_MGIYgLA
5. 總結
-
- k8s的部署難度真不是一般的高,踩坑挺多的
- 感謝有 一鍵部署工具 ,少了很多彎路,前期調研部署工具花了較多時間,官方提供的ansible playbook 安裝 會遇到網絡問題。
- master節點一定要4g記憶體,之前用2g記憶體會挂掉