Kubespray를 통해 Kubernetes를 성공적으로 배포했으며 모든 것이 잘 작동하는 것 같습니다. kubectl을 통해 클러스터에 액세스하고 노드, 포드, 서비스, 비밀 등을 나열 할 수 있습니다. 또한 새로운 리소스를 적용 할 수 있으며 대시 보드 엔드 포인트가 대시 보드 로그인 페이지를 제공합니다.
다른 서비스 계정 (기본, kubernetes-dashboard, kubernetes-admin 등)의 토큰으로 로그인했습니다 ... 예를 들어 모든 로그인마다 kubespray 대시 보드 경고 금지 팝업 에 설명 된 것과 동일한 팝업이 표시됩니다 .
따라서 설명대로 기본 서비스 계정에 대한 클러스터 역할 바인딩을 적용했습니다. 기본 계정 토큰으로 지금 로그인하면
Unknown Server Error (404)
the server could not find the requested resource
Redirecting to previous state in 3 seconds...
나중에 로그인 페이지로 리디렉션됩니다. 를 통해 대시 보드에 연결하면 동일한 동작 kubectl proxy
입니다. 액세스는 퍼블릭 클러스터 IP를 통한 HTTPS 및 프록시를 통한 HTTP입니다
Kubernetes 1.16.2 및 최신 Kubespray 마스터 커밋 18d19d9e를 사용하고 있습니다.
편집 : 클러스터를 파괴하고 다시 프로비저닝하여 새로운 Kubespray 프로비저닝 인스턴스를 확보하여 모든 단계를 결정 론적으로 만들고 추가 정보를 추가했습니다.
kubectl -n kube-system logs --follow kubernetes-dashboard-556b9ff8f8-jbmgg --
로그인 시도 중 나에게
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Incoming HTTP/2.0 GET /api/v1/csrftoken/login request from 10.233.74.0:57458: { contents hidden }
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Outcoming response to 10.233.74.0:57458 with 200 status code
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Incoming HTTP/2.0 POST /api/v1/login request from 10.233.74.0:57458: { contents hidden }
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Outcoming response to 10.233.74.0:57458 with 200 status code
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Incoming HTTP/2.0 GET /api/v1/login/status request from 10.233.74.0:57458: {}
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Outcoming response to 10.233.74.0:57458 with 200 status code
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Incoming HTTP/2.0 GET /api/v1/csrftoken/token request from 10.233.74.0:57458: {}
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Outcoming response to 10.233.74.0:57458 with 200 status code
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Incoming HTTP/2.0 POST /api/v1/token/refresh request from 10.233.74.0:57458: { contents hidden }
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Outcoming response to 10.233.74.0:57458 with 200 status code
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Incoming HTTP/2.0 GET /api/v1/login/status request from 10.233.74.0:57458: {}
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Outcoming response to 10.233.74.0:57458 with 200 status code
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Incoming HTTP/2.0 GET /api/v1/csrftoken/token request from 10.233.74.0:57458: {}
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Outcoming response to 10.233.74.0:57458 with 200 status code
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Incoming HTTP/2.0 POST /api/v1/token/refresh request from 10.233.74.0:57458: { contents hidden }
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Outcoming response to 10.233.74.0:57458 with 200 status code
2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Incoming HTTP/2.0 GET /api/v1/overview/default?filterBy=&itemsPerPage=10&name=&page=1&sortBy=d,creationTimestamp request from 10.233.74.0:57458: {}
2019/12/16 12:35:03 Getting config category
2019/12/16 12:35:03 Getting discovery and load balancing category
2019/12/16 12:35:03 Getting lists of all workloads
2019/12/16 12:35:03 the server could not find the requested resource
2019/12/16 12:35:03 [2019-12-16T12:35:03Z] Outcoming response to 10.233.74.0:57458 with 404 status code
2019/12/16 12:35:03 No metric client provided. Skipping metrics.
2019/12/16 12:35:03 No metric client provided. Skipping metrics.
2019/12/16 12:35:03 No metric client provided. Skipping metrics.
2019/12/16 12:35:03 Getting pod metrics
2019/12/16 12:35:03 No metric client provided. Skipping metrics.
2019/12/16 12:35:03 No metric client provided. Skipping metrics.
2019/12/16 12:35:03 [2019-12-16T12:35:03Z] Incoming HTTP/2.0 GET /api/v1/systembanner request from 10.233.74.0:57458: {}
2019/12/16 12:35:03 [2019-12-16T12:35:03Z] Incoming HTTP/2.0 GET /api/v1/login/status request from 10.233.74.0:57458: {}
2019/12/16 12:35:03 [2019-12-16T12:35:03Z] Incoming HTTP/2.0 GET /api/v1/rbac/status request from 10.233.74.0:57458: {}
2019/12/16 12:35:03 [2019-12-16T12:35:03Z] Outcoming response to 10.233.74.0:57458 with 200 status code
2019/12/16 12:35:03 [2019-12-16T12:35:03Z] Outcoming response to 10.233.74.0:57458 with 200 status code
2019/12/16 12:35:03 [2019-12-16T12:35:03Z] Outcoming response to 10.233.74.0:57458 with 200 status code
2019/12/16 12:35:12 Metric client health check failed: the server could not find the requested resource (get services heapster). Retrying in 30 seconds.
2019/12/16 12:35:42 Metric client health check failed: the server could not find the requested resource (get services heapster). Retrying in 30 seconds.
대시 보드가 작동하는 이상한 해결 방법을 찾았 지만 프로덕션에서는 사용할 수 없으며 누군가가 이것을 설명 할 수 있습니다.
- 서비스 계정을 예로 들어 보겠습니다
kube-system:default
(참고 :cluster-admin
이 시점에는이 계정이 할당되지 않았습니다) - 나는 그것의 토큰을 얻고 그것에 로그인
- 대시 보드에는 "금지 된 팝업"이 표시됩니다.
- 여전히 로그인 한 상태에서
kubectl create clusterrolebinding default-admin --clusterrole cluster-admin --serviceaccount=kube-system:default
- 대시 보드 세션을 유지하는 브라우저 탭을 새로 고칩니다. 전체가 제대로 표시됩니다.
따라서 로그 아웃하고 다시 로그인 할 수 없으므로 항상 clusterrolebinding을 삭제하고 로그인 한 다음 clusterrolebinding을 다시 적용해야합니다.
이것은 kubespray 프로비저닝 클러스터와 밀접한 관련이있는 것으로 보이므로 kubespray로이를 재현 할 수있는 사람이 있습니까?