2017-03-23 2 views
0

kubernetes v1.5.2를 사용 중이며 API를 tls 이상 구현했습니다. 이 괜찮 그것을 엉,Kubernetes kube-dns TLS 인증서 유효성 확인

Mar 23 10:06:27 node01 journal: I0323 09:06:27.007407  1 dns.go:172] Ignoring error while waiting for service default/kubernetes: Get https://10.254.0.1:443/api/v1/namespaces/default/services/kubernetes: x509: cannot validate certificate for 10.254.0.1 because it doesn't contain any IP SANs. Sleeping 1s before retrying. 

내가 다른 포드에서 컬을 사용하여 시도하고 그것이 --insecure 스위치없이 실패 문제 KUBE-DNS를 배포하는 동안 나는대로 미니언에 메시지를 얻고 있다는 것입니다.

사실 10.254.0.1:443은 마스터 노드 (포트 6443의 api) (192.168.0.200)에서 인증서를 제공하지만 10.254.0.1이 유효한 인증서를 제공한다는 것을 이해합니다. 여기

는 clusterip API의 설명입니다 [루트 @의 master01의 DNS] 서비스는 Kubernetes 이름 설명 kubectl # :는 Kubernetes 네임 스페이스 : 레이블 기본 : 구성 요소 = apiserver 제공 =는 Kubernetes 선택기 : 유형 : ClusterIP IP를 : 10.254.0.1 포트 : HTTPS 443/TCP 엔드 포인트 : 192.168.2.200:6443 세션 선호도 : ClientIP

감사 Dubravko

+0

맞춤 SSL 인증서를 사용하고 있습니까? 어떻게 그것을 생성 했습니까? – jaxxstorm

+0

나는 SAN 인증서를 사용하고 있는데 어떻게 DNS를 가지고 있는가 : master01, DNS : master01.lab.cs, IP 주소 : 192.160.2.200, IP 주소 : 10.254.0.1 –

+0

예, 직접 인증서를 생성했는지 묻습니다. – jaxxstorm

답변

1

서비스 IP를 사용하는 경우 API 서버 인증서 의 IP 주소가 10.254.0.1 인 SAN이어야합니다.

마찬가지로 서비스 이름 kubernetes.default을 사용하여 API에 도달하면 인증서의 이름은 SAN이어야합니다.

좋은 방법은 적어도 다음과 같은 SAN에 인증서를 요청하는 것입니다

  • IP : (첫번째 서비스 CIDR의 IP)
  • DNS :는 Kubernetes
  • DNS : kubernetes.default
  • DNS : kubernetes.default.svc
  • DNS : kubernetes.default.svc.cluster.local
,536,

참조 용으로이 유틸리티 스크립트를 확인하십시오. util.sh