UI 組件 - Dashboard 部署
1题画、下載官方提供的 Dashboard 組件部署的 yaml 文件
wget https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
2、修改 yaml 文件中的鏡像
k8s.gcr.io
修改為registry.cn-hangzhou.aliyuncs.com/google_containers
压储,后續(xù)所有 yaml 文件中鲜漩,只要涉及到 image 的,都需要做同樣的修改集惋,因?yàn)閲?guó)內(nèi)k8s.gcr.io
這個(gè)地址被墻了孕似。
3、修改 yaml 文件中的 Dashboard Service刮刑,暴露服務(wù)使外部能夠訪問(wèn)
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kube-system
spec:
ports:
- port: 443
targetPort: 8443
selector:
k8s-app: kubernetes-dashboard
修改為
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kube-system
spec:
ports:
- port: 443
targetPort: 8443
nodePort: 31111
selector:
k8s-app: kubernetes-dashboard
type: NodePort
4喉祭、啟動(dòng) Dashboard
kubectl apply -f kubernetes-dashboard.yaml
5、訪問(wèn) Dashboard
地址: https://<Your-IP>:31111/
注意:必須是 https
6雷绢、創(chuàng)建能夠訪問(wèn) Dashboard 的用戶
新建文件 account.yaml
泛烙,內(nèi)容如下:
# Create Service Account
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kube-system
---
# Create ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kube-system
7、獲取登錄 Dashboard 的令牌 (Token)
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
輸出如下
Name: admin-user-token-f6tct
Namespace: kube-system
Labels: <none>
Annotations: kubernetes.io/service-account.name=admin-user
kubernetes.io/service-account.uid=81cb9047-7087-11e8-95da-00163e0c5bd1
Type: kubernetes.io/service-account-token
Data
====
ca.crt: 1025 bytes
namespace: 11 bytes
token: <超長(zhǎng)字符串>
8翘紊、登錄 Dashboard 面板如下
監(jiān)控組件 - Heapster 部署
Heapster 用于計(jì)算并分析集群資源利用率蔽氨、監(jiān)控集群容器
1、下載官方提供的 Heapster 組件部署的 yaml 文件
# 新建文件夾帆疟,用于存放 Heapster 部署所需的 yaml 文件
mkdir heapster
cd heapster
# 獲取相關(guān) yaml 文件
wget https://raw.githubusercontent.com/kubernetes/heapster/master/deploy/kube-config/influxdb/grafana.yaml
wget https://raw.githubusercontent.com/kubernetes/heapster/master/deploy/kube-config/influxdb/heapster.yaml
wget https://raw.githubusercontent.com/kubernetes/heapster/master/deploy/kube-config/influxdb/influxdb.yaml
wget https://raw.githubusercontent.com/kubernetes/heapster/master/deploy/kube-config/rbac/heapster-rbac.yaml
2孵滞、修改 yaml 中 image 的值
k8s.gcr.io
全部修改為 registry.cn-hangzhou.aliyuncs.com/google_containers
3、部署 Heapster
kubectl create -f heapster/
4鸯匹、幾分鐘后坊饶,刷新 Dashboard 面板
Dashboard 上多了 CPU 和 內(nèi)存的信息。殴蓬。匿级。
可視化 - Gafana 面板
1蟋滴、修改 grafana.yaml
文件,暴露服務(wù)到外部
# 前面省略痘绎,最后幾行改為如下內(nèi)容
ports:
- port: 80
targetPort: 3000
nodePort: 31112
selector:
k8s-app: grafana
type: NodePort
2津函、訪問(wèn) Grafana
地址:http://<Your-IP>:31112/
注意:此處是 http 不是 https
3、補(bǔ)充說(shuō)明
此處 Grafana 服務(wù)部署時(shí)孤页,沒有指定用戶登錄信息尔苦,不建議暴露服務(wù)到外部,若需外部訪問(wèn)行施,建議修改 Deployment 增加用戶訪問(wèn)的校驗(yàn)允坚。