팁
실습을 위한 조건은 다음과 같습니다.
- Kubernetes 1.21 이상의 환경
- Consul binary http://releases.hashicorp.com/consul/
- Install helm 3
- Install Kubectl
- Consul Namespace 테스트는 Enterprise 라이선스가 필요합니다. : http://consul.io/trial
팁
실습을 위한 조건은 다음과 같습니다.
팁
실습을 위한 조건은 다음과 같습니다.
connectInject
이 활성화 되어있어야 합니다.실습을 진행하기 위한 디렉토리를 생성합니다.
mkdir ./traffic
Service Mesh는 HTTP 프로토콜 상에서 L7으로 동작하게 됩니다. 따라서 기본 프로토콜을 http로 변경합니다.
Ingress gateway가 8080을 Listen하도록 구성되어있으면, 아래와 같이 해당 포트의 요청을 받을 대상 서비스를 지정합니다.
apiVersion: consul.hashicorp.com/v1alpha1
kind: IngressGateway
metadata:
name: ingress-gateway
spec:
listeners:
- port: 8080
protocol: http
services:
- name: hashicups
hosts: ["*"]
Consul Doc : https://www.consul.io/docs/k8s/connect#kubernetes-pods-with-multiple-ports
annotation
에 다음과 같이 서비스 이름과 대상 포트를 리스트로 지정합니다.
Consul API : https://www.consul.io/api-docs/config
Proxy Default : https://www.consul.io/docs/connect/config-entries/proxy-defaults
Envoy Integration : https://www.consul.io/docs/connect/proxies/envoy
Jaeger 연동을 위해 Consul on K8s 환경을 구성합니다. 해당 가이드의 경우에는 여기를 참고하세요.
# license파일 생성
vi consul.lic
# 생성한 license파일로 secret 생성
kubectl create secret generic license --from-file='key=./consul.lic'