1. 程式人生 > >k8s dashboard配置

k8s dashboard配置

true stat emp guarantee pre extern contain ports deploy

鏡像:https://hub.daocloud.io/#!/repos/f8919a2c-2540-424e-8758-d23cc76b6d80

啟動Kubernetes集群

配置Kubernetes網絡,在master和nodes上都需要安裝flannel

vi /etc/sysconfig/flanneld
# Flanneld configuration options
# etcd url location. Point this to the server where etcd runs
FLANNEL_ETCD_ENDPOINTS="http://192.168.132.148:2379
" # etcd config key. This is the configuration key that flannel queries # For address range assignment FLANNEL_ETCD_PREFIX="/atomic.io/network" # Any additional options that you want to pass #FLANNEL_OPTIONS=""

配置etcd中flannel的key,需要在etcd中進行配置(如果做了集群可忽略此步驟

在master節點上啟動

systemctl enable flanneld.service 
systemctl start flanneld.service 
service docker restart
systemctl restart kube
-apiserver.service systemctl restart kube-controller-manager.service systemctl restart kube-scheduler.service

在各個Nodes上啟動

systemctl enable flanneld.service 
systemctl start flanneld.service 
service docker restart
systemctl restart kubelet.service
systemctl restart kube-proxy.service

測試集群

技術分享圖片

配置dashboard並啟動

編輯一個kubernetes-dashboard.yaml文件

ui.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
# Keep the name in sync with image version and
# gce/coreos/kube-manifests/addons/dashboard counterparts
  name: kubernetes-dashboard-latest
  namespace: kube-system
spec:
  replicas: 1
  template:
    metadata:
      labels:
        k8s-app: kubernetes-dashboard
        version: latest
        kubernetes.io/cluster-service: "true"
    spec:
      containers:
      - name: kubernetes-dashboard
        image: daocloud.io/daocloud/google_containers_kubernetes-dashboard-amd64:v1.6.1
        resources:
          # keep request = limit to keep this container in guaranteed class
          limits:
            cpu: 100m
            memory: 50Mi
          requests:
            cpu: 100m
            memory: 50Mi
        ports:
        - containerPort: 9090
        args:
         -  --apiserver-host=http://192.168.132.148:8080
        livenessProbe:
          httpGet:
            path: /
            port: 9090
          initialDelaySeconds: 30
          timeoutSeconds: 30
---
kind: Service
metadata:
  name: kubernetes-dashboard
  namespace: kube-system
  labels:
    k8s-app: kubernetes-dashboard
    kubernetes.io/cluster-service: "true"
spec:
  selector:
    k8s-app: kubernetes-dashboard
  ports:
  - port: 80
    targetPort: 9090

註釋:

image 此處要寫鏡像地址,由於大多數dashboard的鏡像國內無法訪問,所以找到一個國內可用的
--apiserver-host=http://192.168.132.148:8080 這裏為apiserver的地址(node下配置)

創建dashboard

[root@k8s_master ~]# kubectl create -f ui.yaml 
deployment "kubernetes-dashboard-latest" created
service "kubernetes-dashboard" created

技術分享圖片

查看創建deployment

[root@k8s_master ~]# kubectl get -f ui.yaml 
NAME                                 DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deploy/kubernetes-dashboard-latest   1         1         1            1           47m

NAME                       CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE
svc/kubernetes-dashboard   10.254.159.141   <none>        80/TCP    47m

技術分享圖片

[root@k8s_master ~]# kubectl get pods --all-namespaces
NAMESPACE     NAME                                           READY     STATUS    RESTARTS   AGE
kube-system   kubernetes-dashboard-latest-1381663337-0wwml   1/1       Running   0          48m

技術分享圖片

如果status處異常可查看日誌

[root@k8s_master ~]# kubectl  logs -f   kubernetes-dashboard-latest-1381663337-0wwml -n kube-system

技術分享圖片

[root@k8s_master ~]# kubectl describe po kubernetes-dashboard --namespace=kube-system

正常為

技術分享圖片

錯誤(提示無法拉取鏡像):

技術分享圖片

訪問web (http://192.168.132.148:8080/ui)
Error: ‘dial tcp 10.1.23.2:9090: getsockopt: connection refused‘
需要檢查apiserver的地址設置的是否正確(重啟apiserver和kubenets)

http://192.168.132.148:8080/api/v1/proxy/namespaces/kube-system/services/kubernetes-dashboard/#!/cluster?namespace=kube-system

技術分享圖片

技術分享圖片

k8s dashboard配置