您好,登錄后才能下訂單哦!
如圖:
[root@master ~]# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc5/aio/deploy/recommended.yaml
[root@master ~]# vim recommended.yaml +39
#定位到39行,修改其提供的service資源
spec:
type: NodePort
ports:
- port: 443
targetPort: 8443
nodePort: 31001
selector:
k8s-app: kubernetes-dashboard
#因為默認情況下,service的類型是cluster IP,需更改為NodePort的方式,便于訪問,也可映射到指定的端口
[root@master ~]# kubectl apply -f recommended.yaml
[root@master ~]# kubectl get pod -n kubernetes-dashboard
NAME READY STATUS RESTARTS AGE
dashboard-metrics-scraper-7f5767668b-dd7ml 1/1 Running 0 28s
kubernetes-dashboard-57b4bcc994-vrzcp 1/1 Running 0 28s
#確保該yaml文件提供的pod均正常運行
[root@master ~]# kubectl get svc -n kubernetes-dashboard
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
dashboard-metrics-scraper ClusterIP 10.110.63.144 <none> 8000/TCP 86s
kubernetes-dashboard NodePort 10.111.65.9 <none> 443:31001/TCP 87s
#查看service資源,也屬正常狀態,并且已經映射了我們指定的端口
該版本之前的dashboard,必須使用火狐瀏覽器才可訪問,本次使用的版本并沒有硬性的要求。
[root@master ~]# kubectl create serviceaccount dashboard-admin -n kube-system
#創建一個dashboard的管理用戶
[root@master ~]# kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
#將創建的dashboard用戶綁定為管理用戶
[root@master ~]# kubectl get secrets -n kube-system | grep dashboard
#獲取剛剛創建的用戶對應的token名稱
dashboard-admin-token-88gxw kubernetes.io/service-account-token 3 22s
[root@master ~]# kubectl describe secrets -n kube-system dashboard-admin-token-88gxw
#查看token的詳細信息
如圖:
瀏覽器訪問:
出現該頁面表示訪問成功!
基于token的基礎之上,進行以下操作:
[root@master ~]# kubectl get secrets -n kube-system | grep dashboard
#查看剛才創建的token
dashboard-admin-token-88gxw kubernetes.io/service-account-token 3 22m
[root@master ~]# kubectl describe secrets -n kube-system dashboard-admin-token-88gxw
#查看token的詳細信息,會獲取token
[root@master ~]# DASH_TOKEN=$(kubectl get secrets -n kube-system dashboard-admin-token-88gxw -o jsonpath={.data.token} | base64 -d)
#將token的信息生成一個變量
[root@master ~]# kubectl config set-cluster kubernets --server=192.168.1.1:6443 --kubeconfig=/root/.dashboard-admin.conf
#將k8s集群的配置信息寫入到一個文件中,文件可自定義
[root@master ~]# kubectl config set-credentials dashboard-admin --token=${DASH_TOKEN} --kubeconfig=/root/.dashboard-admin.conf
#將token的信息也寫入到文件中(同一個文件)
[root@master ~]# kubectl config set-context dashboard-admin@kubernetes --cluster=kubernetes --user=dashboard-admin --kubeconfig=/root/.dashboard-admin.conf
#將用戶信息也寫入文件中(同一個文件)
[root@master ~]# kubectl config use-context dashboard-admin@kubernetes --kubeconfig=/root/.dashboard-admin.conf
#將上下文的配置信息也寫入文件中(同一個文件)
[root@master ~]# sz /root/.dashboard-admin.conf
#最后將配置信息導入到客戶端本地
瀏覽器訪問:
出現上述頁面即表示訪問成功!
關于dashboard的方式就簡單介紹這么多!
如圖:
[root@master ~]# wget https://cloud.weave.works/k8s/scope.yaml
[root@master ~]# vim scope.yaml +212
#定位到212行,更改service類型為NodePort,并指定端口
spec:
type: NodePort
ports:
- name: app
port: 80
protocol: TCP
targetPort: 4040
nodePort: 31002
[root@master ~]# kubectl apply -f scope.yaml
[root@master ~]# kubectl get pod -n weave
#確保運行的pod均為Running狀態
NAME READY STATUS RESTARTS AGE
weave-scope-agent-7t4qc 1/1 Running 0 8m57s
weave-scope-agent-r78fz 1/1 Running 0 8m57s
weave-scope-agent-t8j66 1/1 Running 0 8m57s
weave-scope-app-78cff98cbc-cs4gs 1/1 Running 0 8m57s
weave-scope-cluster-agent-7cc889fbbf-pz6ft 1/1 Running 0 8m57s
[root@master ~]# kubectl get svc -n weave
#查看常見的svc資源對應的端口信息
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
weave-scope-app NodePort 10.102.221.220 <none> 80:31002/TCP 11m
瀏覽器訪問:
在部署Prometheus之前,由于實驗環境,配置較低,所以將原本的dashboard、Scope進行刪除了!
在真正部署Prometheus之前,應了解一下Prometheus的各個組件之間的關系及作用:
1)MertricServer:是k8s集群資源使用情況的聚合器,收集數據給K8s集群內使用,如:kubectl,hpa,scheduler;
2)PrometheusOperator:是一個系統檢測和警報工具箱,用來存儲監控數據;
3)NodeExporter:用于各node的關鍵度量指標狀態數據;
4)kubeStateMetrics:收集k8s集群內資源對象數據,指定告警規則;
5)Prometheus:采用pull方式收集apiserver,scheduler,controller-manager,kubelet組件數據,通過http協議傳輸;
6)Grafana:是可視化數據統計和監控平臺;
注意:這里部署的Prometheus,并不是Prometheus官網提供的,而是使用的coreos提供的Prometheus項目。
如圖:
[root@master ~]# git clone https://github.com/coreos/kube-prometheus.git
#將項目克隆到本地
[root@master ~]# cd kube-prometheus/manifests/
[root@master manifests]# vim grafana-service.yaml
#更改grafana資源對應的service資源的類型及映射的端口
apiVersion: v1
kind: Service
metadata:
labels:
app: grafana
name: grafana
namespace: monitoring
spec:
type: NodePort #添加類型為NodePort
ports:
- name: http
port: 3000
targetPort: http
nodePort: 31010 #自定義映射的端口
selector:
app: grafana
[root@master manifests]# vim alertmanager-service.yaml
#更改alertmanager資源對應的service資源的類型及映射的端口
apiVersion: v1
kind: Service
metadata:
labels:
alertmanager: main
name: alertmanager-main
namespace: monitoring
spec:
type: NodePort #添加類型為NodePort
ports:
- name: web
port: 9093
targetPort: web
nodePort: 31020 #自定義映射的端口
selector:
alertmanager: main
app: alertmanager
sessionAffinity: ClientIP
[root@master manifests]# vim prometheus-service.yaml
#更改prometheus資源對應的service資源的類型及映射的端口
apiVersion: v1
kind: Service
metadata:
labels:
prometheus: k8s
name: prometheus-k8s
namespace: monitoring
spec:
type: NodePort #添加類型為NodePort
ports:
- name: web
port: 9090
targetPort: web
nodePort: 31030 #自定義映射的端口
selector:
app: prometheus
prometheus: k8s
sessionAffinity: ClientIP
[root@master manifests]# pwd #確認當前所在目錄
/root/kube-prometheus/manifests
[root@master manifests]# kubectl apply -f setup/
#必須先執行setup目錄下的所有yaml文件
[root@master manifests]# cd .. #返回上層目錄
[root@master kube-prometheus]# pwd #確認目錄位置
/root/kube-prometheus
[root@master kube-prometheus]# kubectl apply -f manifests/
#將該目錄下的yaml文件全部執行
[root@master kube-prometheus]# kubectl get pod -n monitoring
#確保該名稱空間下的所有Pod都是Running狀態
[root@master kube-prometheus]# kubectl get svc -n monitoring | grep grafana
#查看grafana資源對應的service資源映射的端口
grafana NodePort 10.97.56.230 <none> 3000:31010/TCP 16m
所使用的pod的鏡像下載較慢,總之,網絡穩定一切都不是問題!
瀏覽器訪問:
本地自帶的模板有點low,所以接下來導入一個好看的模板!
模板下載地址:https://grafana.com/dashboards 自行進行查看!
大功告成,可以看到炫酷的監控頁面了。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。