ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Dashboard ΠΈΠ·Π²Π½Π΅.
1. kubernetes-dashboard – ΡΡΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ²ΠΈΡ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠΏ ΡΠ΅ΡΠ²ΠΈΡΠ° Ρ ClusterIP Π½Π° NodePort:
[root@kubeXXXX]# kubectl -n kube-system edit service kubernetes-dashboard
# 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
kind: Service
metadata:
creationTimestamp: 2018-05-08T15:03:48Z
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kube-system
resourceVersion: "1855185"
selfLink: /api/v1/namespaces/kube-system/services/kubernetes-dashboard
uid: 02c97f8b-52d1-11e8-a941-080027efcddc
spec:
clusterIP: 10.107.194.2xx
externalTrafficPolicy: Cluster
ports:
- nodePort: 32414
port: 443
protocol: TCP
targetPort: 8443
selector:
k8s-app: kubernetes-dashboard
sessionAffinity: None
type: NodePort ### clusterIP to NodePort
status:
loadBalancer: {}
2. Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡ Π½Π°ΠΌ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΠΉ ΠΏΠΎΡΡ ΠΊ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°.
# kubectl -n kube-system get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kube-dns ClusterIP 10.96.0.10 [none] 53/UDP,53/TCP 20d kubernetes-dashboard NodePort 10.107.194.201 [none] 443:32414/TCP 20d
# lsof -i tcp:32414 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME kube-prox 3440 root 7u IPv6 32584 0t0 TCP *:32414 (LISTEN)
3. ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠΊΠ΅Π½.
# kubectl -n kube-system describe $(kubectl -n kube-system get secret -n kube-system -o name | grep namespace) | grep token: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJuYW1lc3BhY2UtY29udHJvbGxlci10b2tlbi1wY21oNCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJuYW1lc3BhY2UtY29udHJvbGxlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImY1YmEyNDQ3LTUyZDAtMTFlOC1hOTQxLTA4MDAyN2VmY2RkYyIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlLXN5c3RlbTpuYW1lc3BhY2UtY29udHJvbGxlciJ9.Jvd6HJVBN9UEK8gzojed8TATpj6JycahZJ-qS5a66so3MEj_MIB3Vpy-MAPQErAL_DnSdvMVZA4gw5XSwK0ufYatA3lVP9sxUmc-eI1zd-HYF9UbvhtXaLuY-Wqx8kQ3_lKkqattFocQd8WswQY6SmrMthV5b8Xu3tNV3bpCaqZNhw6X8_-Yxh4Q4ATBoT0cXrO_WAYxFwd4_ilII_UPXYjs2ZSK7G2g0QJPtLyEKOXMtC7ZuAETc5MKdX_m4nC7CLSR-j5-7aG0gyd_vzwYiyewnLC4T-Byw9fVO8cpE0nswSxyGVX_QR9kIVHRT7QdLOkJEBARFpTyUczX9oETPw
4. ΠΠΎΠ»ΡΡΠΈΡΠ΅ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡΒ https://[master_node_ip]:[port]Β ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡΠ΅ ΡΠΎΠΊΠ΅Π½ Π΄Π»Ρ Π²Ρ ΠΎΠ΄Π°.
![]()
