docker swarm ca
docker swarm ca
docker swarm ca는 스웜(Swarm)의 루트 CA 인증서를 조회하거나 회전(rotate)하는 명령이에요. 클러스터의 CA를 확인하고 싶거나, 매니저가 손상됐을 때 CA를 교체하고 싶을 때 사용해요.
출처: 문서
본문
docker swarm ca는 현재 스웜 CA 인증서를 조회하거나 회전하는 명령이에요.
docker swarm ca [OPTIONS]
참고: 클러스터 관리 명령이라 스웜 매니저 노드에서 실행해야 해요.
지원하는 옵션은 다음과 같아요.
| 옵션 | 기본값 | 설명 |
|---|---|---|
--ca-cert |
새 클러스터에 쓸 PEM 형식 루트 CA 인증서 경로예요. | |
--ca-key |
새 클러스터에 쓸 PEM 형식 루트 CA 키 경로예요. | |
--cert-expiry |
2160h0m0s |
노드 인증서 유효기간이에요 (ns/us/ms/s/m/h). |
-d, --detach |
루트 회전이 수렴될 때까지 기다리지 않고 즉시 종료해요. | |
--external-ca |
하나 이상의 인증서 서명 엔드포인트 설정이에요. | |
-q, --quiet |
진행 출력을 숨겨요. | |
--rotate |
스웜 CA를 회전해요. 인증서나 키를 주지 않으면 새로 생성해요. |
예시
옵션 없이 실행하면 현재 루트 CA 인증서를 PEM 형식으로 보여줘요.
$ docker swarm ca
-----BEGIN CERTIFICATE-----
MIIBazCCARCgAwIBAgIUJPzo67QC7g8Ebg2ansjkZ8CbmaswCgYIKoZIzj0EAwIw
...
-----END CERTIFICATE-----
--rotate 플래그를 넘기면 현재 스웜 루트 CA를 회전해요. 회전이 끝나면(진행 막대가 모두 완료되면) 새로운 CA 인증서를 출력해요.
$ docker swarm ca --rotate
desired root digest: sha256:05da740cf2577a25224c53019e2cce99bcc5ba09664ad6bb2a9425d9ebd1b53e
rotated TLS certificates: [==================================================>] 2/2 nodes
rotated CA certificates: [==================================================>] 2/2 nodes
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
루트 CA 회전 (--rotate)
참고: Mirantis Kubernetes Engine(MKE, 옛 Docker UCP)은 스웜에 외부 인증서 관리 서비스를 제공해요. MKE에서 스웜을 운영한다면 CA 인증서를 수동으로 회전하지 말고, 회전이 필요하면 Mirantis 지원에 문의하세요.
루트 CA 회전은 스웜 매니저가 하나 이상 손상됐을 때 그 매니저가 더 이상 클러스터의 다른 노드와 연결·신뢰되지 못하게 하려고 권장해요. 또한 스웜 CA 제어권을 외부 CA에 넘기거나, 외부 CA에서 다시 되찾을 때도 사용할 수 있어요.
--rotate 플래그는 별도 매개변수 없이도 회전을 수행해요. 필요하면 인증서와 키, 또는 인증서와 외부 CA URL을 지정해 자동 생성되는 인증서·키 쌍 대신 사용할 수 있어요.
루트 CA 키는 비밀로 유지해야 하므로, 지정하더라도 CLI나 API로 스웜 정보를 볼 때는 표시되지 않아요.
루트 CA 회전은 모든 등록된 노드가 TLS 인증서를 회전할 때까지 완료되지 않아요. 회전이 너무 오래 걸리면 docker node ls --format '{{.ID}} {{.Hostname}} {{.Status}} {{.TLSStatus}}'로 어떤 노드가 다운됐거나 TLS 인증서를 회전하지 못하는지 확인해 보세요.
분리 모드에서 루트 CA 회전 (--detach)
--detach 플래그는 루트 CA 회전을 시작하되, 완료를 기다리지 않고 진행 상황도 표시하지 않아요.