博文大綱: 1、部署dashboard的Web-UI界面 2、部署weave-scope監控k8s集羣 3、部署Prometheus服務
一、下載yaml文件配置並執行
node
[root@master ~]# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.3/aio/deploy/recommended.yaml [root@master ~]# vim recommended.yaml +39 //定位到39行,修改其提供的service資源 --- kind: Service apiVersion: v1 metadata: labels: k8s-app: kubernetes-dashboard name: kubernetes-dashboard namespace: kubernetes-dashboard spec: type: NodePort //添加類型爲NodePort ports: - port: 443 targetPort: 8443 nodePort: 31001 //映射到宿主機的端口爲31001 selector: k8s-app: kubernetes-dashboard //修改完保存退出便可 [root@master ~]# kubectl apply -f recommended.yaml //執行yaml文件 [root@master ~]# kubectl get pod -n kubernetes-dashboard //確認其正常運行 NAME READY STATUS RESTARTS AGE dashboard-metrics-scraper-76679bc5b9-nzcl9 1/1 Running 0 55s kubernetes-dashboard-65bb64d6cb-n95bf 1/1 Running 0 55s [root@master ~]# kubectl get svc -n kubernetes-dashboard NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE dashboard-metrics-scraper ClusterIP 10.107.61.31 <none> 8000/TCP 92s kubernetes-dashboard NodePort 10.107.129.197 <none> 443:31001/TCP 92s //查看service資源,也屬正常狀態,而且已經映射了咱們指定的端口
二、客戶端經過瀏覽器訪問
注:該版本以前的dashboard,必須使用火狐瀏覽器纔可訪問,多是版本更新解決了這一問題,因此本次版本沒有什麼硬性的要求。
方法一:使用Token的方式登陸git
[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 dashboard-admin-token-h7w7r kubernetes.io/service-account-token 3 12s //獲取剛剛建立的用戶對應的token名稱 [root@master ~]# kubectl describe secrets -n kube-system dashboard-admin-token-h7w7r //查看token的詳細信息
注:出現以上頁面表示部署成功,而且監控到了各個節點的信息!!!github
方法二:使用kubeconfig的方式登陸web
[root@master ~]# kubectl get secrets -n kube-system | grep dashboard //查看剛纔建立的token dashboard-admin-token-h7w7r kubernetes.io/service-account-token 3 13m [root@master ~]# kubectl describe secrets -n kube-system dashboard-admin-token-h7w7r //查看token的詳細信息,會獲取token [root@master ~]# DASH_TOKEN=$(kubectl get secrets -n kube-system dashboard-admin-token-h7w7r -o jsonpath={.data.token} | base64 -d) //將token的信息生成一個變量 [root@master ~]# kubectl config set-cluster kubernets --server=192.168.45.129: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簡單就介紹到這了!!!json
一、github搜索「scope」,而後點擊以下:
vim
[root@master ~]# wget https://cloud.weave.works/k8s/scope.yaml //將得到的連接下載 [root@master ~]# vim scope.yaml +212 //編輯yaml文件 //定位到212行,更改service類型爲NodePort,並指定端口 spec: type: NodePort //修改類型爲NodePort ports: - name: app port: 80 protocol: TCP targetPort: 4040 nodePort: 31002 //映射到宿主的端口爲31002 [root@master ~]# kubectl apply -f scope.yaml //執行yaml文件 [root@master ~]# kubectl get pod -n weave //查看容器的運行狀況,肯定處於正常運行 NAME READY STATUS RESTARTS AGE weave-scope-agent-s66hp 1/1 Running 0 112s weave-scope-agent-vjn75 1/1 Running 0 112s weave-scope-agent-wzt8z 1/1 Running 0 112s weave-scope-app-b965dccb7-l5bgp 1/1 Running 0 112s weave-scope-cluster-agent-6598584d8-jhc5b 1/1 Running 0 112s [root@master ~]# kubectl get svc -n weave //查看常見的svc資源對應的端口信息 NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE weave-scope-app NodePort 10.96.65.55 <none> 80:31002/TCP 2m38s
注:以上關於weave-scope簡單就介紹到這了!!!api
在部署以前,先來了解一下Prometheus各個組件的做用以下: * MertricServer:是k8s集羣資源使用狀況的聚合器,收集數據給K8s集羣內使用,如:kubectl,hpa,scheduler * PrometheusOperator:是一個系統檢測和警報工具箱,用來存儲監控數據; * NodeExporter:用於各node的關鍵度量指標狀態數據; * kubeStateMetrics:收集k8s集羣內資源對象數據,指定告警規則; * Prometheus:採用pull方式收集apiserver,scheduler,controller-manager,kubelet組件數據,經過http協議傳輸; * Grafana:是可視化數據統計和監控平臺。
一、刪除前兩個監控平臺,要不太消耗系統資源以下:瀏覽器
[root@master ~]# kubectl delete -f scope.yaml [root@master ~]# kubectl delete -f kubernetes-dashboard.yaml
二、獲取yaml文件修改並執行
markdown
[root@master ~]# yum -y install git //安裝git命令 [root@master ~]# git clone https://github.com/imirsh/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 NodePort 10.97.206.97 <none> 3000:31010/TCP 12m //查看grafana資源對應的service資源映射的端口
三、客戶端訪問羣集中任意節點的IP+31010端口,便可看到如下界面(默認用戶名和密碼都是admin):
session
本地自帶的模板有點low,能夠自行導入好看的模板以下: