Kubernetes의 Consul 1.0

Kubernetes의 Consul 1.0

Consul on Kubernetes 1.0 릴리스의 주요 내용과 변경 사항을 설명해 드릴게요. Consul Dataplane 도입, Cluster Peering GA, API 게이트웨이 지원이 하이라이트예요.

출처: 문서

본문

Consul on Kubernetes 1.0

릴리스 하이라이트

  • Consul Dataplane로 간소화된 서비스 메시 배포: Consul 클라이언트 에이전트가 기본적으로 더 이상 배포되지 않으며, Consul 서비스 메시는 더 이상 운영에 Consul 클라이언트를 사용하지 않아요. 새 구성 요소 consul-dataplane이 일반 Envoy 대신 사이드카 프록시로 주입돼요. consul-dataplane은 Envoy 프록시 프로세스를 관리하고 Envoy에서 Consul 서버로 xDS 요청을 프록시해요. 모든 서비스 메시 consul-k8s 구성 요소는 Consul 서버와 직접 통신하도록 구성돼요.

  • 메시 게이트웨이를 통한 피어링이 포함된 Cluster Peering GA: 이 버전은 서비스 메시와 전통적인 서비스 디스커버리 모두에 대해 Consul 클러스터를 연합하는 새 모델인 Cluster Peering을 일반 공급(GA)으로 승격해요. 클러스터 피어링은 기존 WAN 연합보다 느슨한 결합으로 서비스 상호 연결을 허용해요. Consul K8s의 Cluster Peering은 이제 servers.exposeServers 스탠자로 로드 밸런서를 프로비저닝하는 대신 기본적으로 메시 게이트웨이를 통해 라우팅되는 컨트롤 플레인 트래픽으로 Cluster Peering을 활성화해요. 또한 Cluster Peering을 통한 서비스 간 트래픽에 대한 장애 조치를 ServiceResolver CRD의 failover.targets 필드로 구성할 수 있어요.

  • Consul API Gateway 0.5.0 지원: 클라이언트 없이 Consul API 게이트웨이를 실행하고 Consul API 게이트웨이가 Consul 서버에 직접 연결할 수 있도록 지원해요.

변경된 사항

  • client.enabled는 이제 기본값이 false예요. true로 설정하면 클라이언트 에이전트가 배포되지만, 어떤 consul-k8s 구성 요소도 운영에 클라이언트를 사용하지 않아요. Kubernetes에 배포된 Consul을 스토리지 백엔드로 사용하는 Kubernetes의 Vault의 경우 업그레이드 전에 client.enabled를 true로 설정해야 해요.

  • externalServers.grpcPort 기본값은 이제 8503 대신 8502예요.

  • externalServers.hosts는 이제 클라우드 자동 합류 문자열을 직접 지원하지 않아요. 대신 discover CLI를 호출하려면 externalServers.hosts 목록에 exec= 문자열을 포함해 주세요. 예를 들어 다음 문자열은 클라우드 자동 합류 문자열로 discover CLI를 호출해요: exec=discover -q addrs provider=aws region=us-west-2 tag_key=consul-server tag_value=true. discover CLI는 공식 hashicorp/consul-dataplane 이미지에 기본적으로 포함돼 있어요.

  • sync-catalog는 이제 Consul 서버와 직접 통신해요. Kubernetes 외부의 서버와 통신할 때는 Kubernetes의 Consul에 외부 서버 합류에서 설명한 대로 externalServers.hosts 스탠자를 사용해 주세요.

  • Consul snapshot agent는 Consul 서버의 사이드카로 실행돼요. Enterprise

  • client.snapshotAgent 값은 다음 값을 제외하고 server.snapshotAgent로 이동해요: client.snapshotAgent.replicas, client.snapshotAgent.serviceAccount

  • global.secretsBackend.vault.consulSnapshotAgentRole 값은 이제 제거됐어요. 이제 Vault 시크릿에 대한 접근에는 global.secretsBackend.vault.consulServerRole를 사용해야 해요.

  • 더 쉬운 빠른 시작과 테스트를 위한 간소화된 기본 배포 값 지원:

    • server.replicas를 1로 설정. 이전에는 3이 기본값이었어요.

    • connectInject.enabled는 이제 기본값이 true예요.

    • dns.enabled 및 dns.enableRedirection은 이제 connectInject.transparentProxy.defaultEnabled 값으로 기본 설정돼요. 이전에는 dns.enabled가 global.enabled 값으로, dns.enableRedirection은 false로 기본 설정됐어요.

    • connectInject.replicas를 1로 설정

    • meshGateway.affinity를 null로, meshGateway.replicas를 1로 설정

    • ingressGateways.defaults.affinity를 null로, ingressGateways.defaults.replicas를 1로 설정

    • terminatingGateways.defaults.affinity를 null로, terminatingGateways.defaults.replicas를 1로 설정

    • syncCatalog.consulNamespaces.mirroringK8S는 이제 기본값이 true예요. Enterprise

    • connectInject.consulNamespaces.mirroringK8S는 이제 기본값이 true예요. Enterprise

    • global.imageEnvoy는 이제 사이드카 프록시 실행을 위해 global.imageConsulDataplane으로 대체됐어요. apiGateway.imageEnvoy는 API 게이트웨이가 사용하는 Envoy 버전을 구성할 수 있어요.

지원 소프트웨어

참고: Consul 1.13.x 및 1.12.x는 지원되지 않아요. Consul 1.13.x 또는 1.12.x를 사용하려면 Consul K8s 0.49.x를 사용해 주세요.

  • Consul 1.14.x.
  • Consul Dataplane v1.0.x. Consul Dataplane 버전과 사용 가능한 패키지 Envoy 버전에 대한 자세한 내용은 Envoy 및 Consul Dataplane을 참고해 주세요.
  • Kubernetes 1.22.x - 1.25.x
  • kubectl 1.22.x - 1.25.x
  • Helm 3.6+

업그레이드

업그레이드에 대한 자세한 내용은 업그레이드 페이지를 참고해 주세요.

알려진 문제

v1.0.0 릴리스에 존재하는 것으로 알려진 문제는 다음과 같아요:

  • Pod Security Admission controller에 대해 구성된 Pod Security Standards는 현재 Consul K8s에서 지원되지 않아요. OpenShift 4.11.x는 Kubernetes 1.25에서 Pod Security Standards를 기본적으로 활성화하며 역시 지원되지 않아요. 향후 Consul K8s 1.0.x 패치 릴리스에서 지원이 추가될 예정이에요.

변경 로그

이 주요 릴리스 버전 및 유지 관리 버전에 대한 변경 로그는 아래에 나열돼요.

참고: 다음 링크는 GitHub 웹사이트의 변경 로그로 이동해요.

더 알아보기 (Learn more)