-
[Istio] 환경 구축(feat. Minikube)Infra/Cloud 2023. 11. 26. 13:27
공유 목적을 위해 istio 관련 포스팅을 진행해보려고 한다
나의 환경의 경우 mac os(M2 pro)에 minikube를 설치해서 진행하였으며
istio는 1.20, kubernetes 버전은 1.28이다.
minikube 설치
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64 sudo install minikube-darwin-amd64 /usr/local/bin/minikube minikube start
kubectl 설치 & 자동완성설정
brew install kubectl 또는 brew install kubernetes-cli alias k=kubectl complete -o default -F __start_kubectl k source <(kubectl completion zsh) echo '[[ $commands[kubectl] ]] && source <(kubectl completion zsh)' >> ~/.zshrc
istioctl 설치
curl -L https://istio.io/downloadIstio | sh - cd istio-1.20.0 export PATH=$PWD/bin:$PATH
helm 설치 및 Kubernetes istio 구축
brew install helm helm repo add istio https://istio-release.storage.googleapis.com/charts helm repo update kubectl create namespace istio-system helm install istio-base istio/base -n istio-system --set defaultRevision=default helm ls -n istio-system helm install istiod istio/istiod -n istio-system --wait helm ls -n istio-system kubectl get deployments -n istio-system --output wide kubectl create namespace istio-ingress helm install istio-ingress istio/gateway -n istio-ingress --wait
다른방법의 istio 구축
git clone https://github.com/DickChesterwood/istio-fleetman cd istio-fleetman/_course_files/arm64/warmup-exercise k apply -f 1-istio-init.yaml k apply -f 2-istio-minikube.yaml .. ..
=> 이후 나머지 yaml도 실행시켜주면 테스트 환경을 확인할 수 있다. 아래는 Istio를 통해 구성된 service mesh를 모니터링할 수 있는 툴 kiali Dashboard의 화면이다. 참고로 해당 dashboard에 보여지려면 당연히 pod내에 envoy proxy를 sidecar형태로 injection해야하며 이는 namespace의 labeling을 통해 가능하다. 원하는 namespace에 istio-injection=enabled label을 적용하면된다. 정상적으로 injection이 되었다면 pod 생성 시(Pod내에 1개의 container를 생성했을경우) 2개의 container가 존재하는 것을 확인할 수 있으며 그중 하나는 istio-proxy(envoy proxy)이다.
Kiali Dashboard 접근
=> 하단의 Legend를 클릭하면 해당 map에 대한 정보를 볼 수 있다.
[참고] MacOS(M1, M2) minikube service type NodePort 접근이 안되는 이슈
참고로 nodePort를 통해 Pod를 노출시키는경우 minikube ip로 접근이 안되는 이슈가 발생할 수 있다. 이는 docker를 driver로 사용하기 때문이라는 말도 있는데 어찌되었던 minikube service를 통해 간단하게 해결할 수 있다.
반응형'Infra > Cloud' 카테고리의 다른 글
[AWS] Lambda와 Nodejs 이용한 영화 예매순위 알람 서비스 (0) 2023.12.04 [Istio] Kiali & Jaeger (0) 2023.11.28 [AWS] EKS - Automation(스터디 7주차) (0) 2023.06.07 [AWS] EKS - Security(스터디 6주차) (0) 2023.05.30 [AWS] EKS - AutoScaling(스터디 5주차) (0) 2023.05.23 댓글