Kubernetes Dashboard Kurulumu
Kubernetes kurulumundan sonra, dashboard’ın deploy edilip erişilebilir hale getirmek için aşağıdaki adımlar takip edilmelidir.
Dashboard Arayüzünü Deploy Etme
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
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
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}'