1. nginx 설치
1) nginx yaml 입력
# vi nginx.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80 |
2) nginx ns 생성
# kubectl create namespace nginx
3) Istio injection 설정 및 확인
# kubectl label namespace nginx istio-injection=enabled
# kubectl get namespace -L istio-injection
4) nginx deploy
# kubectl apply -f nginx.yaml -n nginx
5) nginx service 등록
# kubectl expose deployment/nginx-deployment --type="ClusterIP" --port 80 --protocol="TCP"
* nginx deploy yaml에 사용한 name을 입력 (metadata.name)
2. istio gateway / virtualservice 등록
1) nginx gateway / virtual service yaml 생성
# vi nginx-istio-gw-vs.yaml
apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: name: nginx-gateway namespace: nginx spec: selector: istio: ingressgateway # use istio default controller servers: - port: number: 80 name: http protocol: HTTP hosts: - "nginx.172.30.3.252.nip.io" # 사용할 hosts --- apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: nginx-vs namespace: nginx spec: hosts: - "nginx.172.30.3.252.nip.io" # GW에 입력한 hosts와 동일하게 작성 gateways: - nginx-gateway http: - match: - uri: prefix: / route: - destination: host: nginx-deployment # nginx에서 사용하고 있는 service 네임 port: number: 80 |
2) GW, VS 확인
# kubectl get gateway -n nginx
# kubectl get virtualservice -n nginx
3) web page 접속
3. kiali 에서 트래픽 확인
1) 트래픽 유발
# watch curl nginx.172.30.3.252.nip.io (본인 linux 서버에서 진행)
2) kiali에서 확인
이렇게 nginx에 istio injection 및 ingress를 태운 후 traffic monitoring 까지 진행 하였다.
다른 container에도 istio-injection을 걸어서 모니터링 해보도록 하자.
'Kubernetes > Kubernetes 사용법' 카테고리의 다른 글
Argocd-github 연결 (0) | 2022.12.12 |
---|---|
Ingress 에 cert-manager 연결 (0) | 2022.12.05 |
Kubernetes 네트워크 구조 (0) | 2021.11.17 |