Ana içeriğe atla

Dashboard Arayüzünü Deploy Etme

Dashboard kullanıcı arayüzü varsayılan olarak konuşlandırılmamıştır. Dağıtmak için aşağıdaki adımları takip edin:
Küme verilerinizi korumak için, Dashboard varsayılan olarak en az bir RBAC yapılandırması ile konuşlandırır. Dashboard yalnızca Bearer Token ile giriş yapmayı destekler.
vi dashboard-service.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
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
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
vi dashboard-deployment.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.1.0/aio/deploy/recommended.yaml

NodePort Ayarı

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
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: <YOUR_CLUSTER_IP>
  externalTrafficPolicy: Cluster
  ports:
    - port: 443
      protocol: TCP
      targetPort: 8443
      nodePort: 32100
  selector:
    k8s-app: kubernetes-dashboard
  sessionAffinity: None
  type: NodePort
status:
  loadBalancer: {}
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
Örnek çıktı:
NAME                   TYPE       CLUSTER-IP   EXTERNAL-IP   PORT(S)         AGE
kubernetes-dashboard   NodePort   <YOUR_CLUSTER_IP>   <none>        443:32100/TCP   13d
Dashboard 32100 numaralı bağlantı noktasında (HTTPS) görüntülendi. Artık tarayıcınızdan erişebilirsiniz: https://<YOUR_CLUSTER_IP>:32100. 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}'