Kubernetes kurulumundan sonra, dashboard’ın deploy edilip erişilebilir hale getirmek için aşağıdaki adımlar takip edilmelidir.

Deploying the Dashboard UI

Dashboard kullanıcı arayüzü varsayılan olarak konuşlandırılmamıştır. Dağıtmak (deploy) için aşağıdaki komutu çalıştırın:

Küme verilerinizi korumak için, Dashboard varsayılan olarak en az bir RBAC yapılandırması ile konuşlandırır. Şu anda, Dashboard yalnızca Bearer Token ile giriş yapmayı destekler. Aşağıdaki adımları sırası ile uygulayınız.

$ vi dashboard-service.yaml

apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
YML

$ vi dashboard-adminuser.yaml

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kubernetes-dashboard
YML


kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.1.0/aio/deploy/recommended.yaml
POWERSHELL


kubectl apply -f dashboard-service.yaml

kubectl apply -f dashboard-adminuser.yaml

kubectl create clusterrolebinding permissive-binding --clusterrole=cluster-admin --user=admin --user=kubelet --group=system:serviceaccounts

kubectl create clusterrolebinding kubernetes-dashboard -n kube-system --clusterrole=cluster-admin --serviceaccount=kube-system:kubernetes-dashboard
POWERSHELL

NodePort ayarlanması

Kubernetes dashboard yukarıdaki adımlar ile kurulduğunda varsayılan olarak ClusterIP ile açacaktır. Dışarıdan erişim için Service içindeki değeri aşağıdaki gibi değiştirmeliyiz.

kubectl -n kubernetes-dashboard edit service kubernetes-dashboard
POWERSHELL
# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
apiVersion: v1
...
  name: kubernetes-dashboard
  namespace: kube-system
  resourceVersion: "343478"
  selfLink: /api/v1/namespaces/kube-system/services/kubernetes-dashboard-head
  uid: 8e48f478-993d-11e7-87e0-901b0e532516
spec:
  clusterIP: 10.100.124.90
  externalTrafficPolicy: Cluster
  ports:
  - port: 443
    protocol: TCP
    targetPort: 8443
    nodePort: 32100
  selector:
    k8s-app: kubernetes-dashboard
  sessionAffinity: None
  type: NodePort
status:
  loadBalancer: {}
BASH


Daha sonra Dashboard'un bulunduğu bağlantı noktasını kontrol etmemiz gerekiyor. Aşağıdakine benzer bir servis görüntüsü olmalıdır.

kubectl -n kubernetes-dashboard get service kubernetes-dashboard

NAME                    TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE
kubernetes-dashboard   NodePort   10.102.197.56   <none>        443:32469/TCP   13d
POWERSHELL


Dashboard 32469 numaralı bağlantı noktasında (HTTPS) görüntülendi. Artık tarayıcınızdan erişebilirsiniz: https: // <master-ip>:32469. master-ip, kubectl cluster-info komutunu çalıştırarak bulunabilir. Genellikle, kümenizin doğrudan bu komutların yürütüldüğü makinede çalıştığını varsayarsak, makinenizin 127.0.0.1 veya IP'sidir.

Çok düğümlü bir kümede NodePort kullanarak Dashboard'u göstermeye çalıştığınızda, Dashboard'un erişmek için üzerinde çalıştığı düğümün IP'sini bulmanız gerekir. Https: // <master-ip>: <nodePort> 'a erişmek yerine, https: // <node-ip>: <nodePort>' a erişmelisiniz.

Token Almak

kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | awk '/^deployment-controller-token-/{print $1}') | awk '$1=="token:"{print $2}'
POWERSHELL