2017-11-11 3 views
0

나는 kubernetes를 처음 사용합니다. 여기에 kubernetes 클러스터에 사용 된 CA 인증서에 대한 약간의 혼란이 있습니다. 내가 아는 한 kubernetes에는 여러 CA 인증서가 있지만 각 기능이 무엇인지 아직 명확하지 않습니다. 여기에 그들에 대한 나의 이해가 있지만 여전히 확실하지 않습니다.Kubernetes에서 CA 인증서의 다른 기능은 무엇입니까?

  1. 루트는

    • 그것은 --tls-CERT 파일 및 --tls - 개인 키 파일로 apiserver에 구성된 certwhich apiserver에 서명, CA 봉사로 알고 CA.
    • 이 CA 인증서는
  2. 클라이언트 CA

    • 이 CA 인증서가 루트 CA에 의해 서명 중간 CA 인증서가 될 수 --root-CA-파일 KUBE-컨트롤러 관리자에서 구성됩니다 증명서.
    • 은 클러스터의 개별 구성 요소에 서명하는 데 사용되며 RBAC 및 NODE 권한 부여가 활성화 된 경우 해당 ID를 식별하는 데 도움이됩니다. 예를 들어, kube-controller-manager, kube-scheduler, kube-proxy, kubelet에 서명하십시오.
    • 는 --client-CA-파일 apiserver에서 구성 할 수 있습니다
  3. 이 CA 인증서는 루트 CA 인증서에 의해 서명 중간 CA 인증서가 될 수
    • 캘리포니아에 RequestHeader 클라이언트.
    • 아직도이 CA가 사용 된 것을 이해하지 못합니까? CA 파일의 어떤 시나리오에서 메트릭 서버가 배치 된 경우 requestheader 관련 인증서 및 키를 묻습니다.
    • --proxy-client-cert-file 및 --proxy-client-key-file in kube - 매개 변수,이 매개 변수의 값은 무엇입니까? kubelet 인증서와 키를 사용할 수 있습니까? 이러한 CA 인증서 게다가

는 다른 인증서 상대 혼란도 발생하고 있습니다.

  1. kube-apiserver 및 kube-controller-manager의 --service-account-key-file 매개 변수는 어떤 파일을 구성 할 수 있습니까? apiserver 키 파일 또는 ROOT CA 키 파일입니까?
  2. 무엇을
    --cluster-signing-cert-file 및 kube-controller-manager의 --cluster-signing-key-file로 설정할 수 있습니까? 우리는 클라이언트 ca와 클라이언트 ca 키 파일을 사용할 수 있습니까?

답변

0

좋은 요약 https://github.com/kubernetes/kubernetes/issues/54665#issuecomment-340960398

에서 요청 헤더 CA는 요청 헤더에 설정 한 사용자 정보와 함께 인증 프록시 제시 클라이언트 인증서를 확인하는 데 사용된다. 프록시는 사용자를 인증하고 요청을 프록시하며 헤더에 사용자 이름/그룹을 설정합니다. API 서버는 헤더의 사용자 정보를 신뢰하기 전에 클라이언트 인증서를 확인합니다.

관련 문제