설명
--etcd-cafile은 kube-apiserver가 etcd 서버 인증서를 검증할 때 사용하는 CA 파일입니다. API 서버 자신의 클라이언트 인증서와는 다른 설정입니다.
사설 CA로 발급한 etcd 인증서를 사용한다면 API 서버가 해당 CA를 신뢰하도록 구성해야 합니다. CA 파일 경로뿐 아니라 실제 HTTPS 접속 주소와 서버 인증서의 신뢰 관계도 함께 확인해야 합니다.
잠재적 영향
필요한 CA를 신뢰하지 않거나 잘못된 파일을 지정하면 TLS 연결이 실패할 수 있습니다. 이를 해결하려고 인증서 검증을 우회하면 잘못된 서버에 연결할 위험이 생깁니다.
해결 방법
--etcd-cafile에 신뢰할 CA 파일을 지정하고 API 서버에서 실제 파일을 읽을 수 있도록 마운트하세요.--etcd-servers에 올바른 HTTPS 주소를 사용하고 서버 인증서가 해당 주소와 신뢰할 CA에 맞는지 확인하세요.- etcd가 클라이언트 인증서를 요구하면 별도로
--etcd-certfile과--etcd-keyfile을 구성하고 실제 연결을 검증하세요.
예시
과거 kube-apiserver 버전의 인자 발췌입니다. 실제 배포에는 지원 버전, etcd 접속 주소와 인증서 파일 마운트 등 나머지 설정이 필요합니다.
변경 전
yaml
apiVersion: v1
kind: Pod
metadata:
name: command-demo
spec:
containers:
- name: command-demo-container
image: gcr.io/google_containers/kube-apiserver-amd64:v1.6.0
command: ["kube-apiserver"]
args: []
etcd용 CA 파일을 명시하지 않습니다. 실제 접속 주소와 인증서 신뢰 구성이 적절한지 확인해야 합니다.
변경 후
yaml
apiVersion: v1
kind: Pod
metadata:
name: command-demo
spec:
containers:
- name: command-demo-container
image: gcr.io/google_containers/kube-apiserver-amd64:v1.6.0
command: ["kube-apiserver"]
args: ["--etcd-cafile=/path/to/ca/file.pem"]
CA 파일을 명시합니다. 예시 경로를 실제 파일로 바꾸고 HTTPS 연결과 필요한 클라이언트 인증 설정도 함께 확인하세요.