Istio Installation
Table of Contents
1.7.3
Install with Istioctl
- Addons :Promethus, Kiali
- https://istio.io/v1.7/docs/setup/install/istioctl/
- Ingress-gateway를
NodePort:32080
로 오픈하고 Kiali와 연동
Download
▒ curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.7.3 TARGET_ARCH=x86_64 sh -
▒ cd istio-1.7.3
▒ chmod +x bin/istioctl
▒ cp bin/istioctl /usr/local/bin
Install
override 설치 예
- 아래와 같이 default profile 에서 수정할 ingressGateways 스펙을 조회 (해당 스펙 참조)
▒ istioctl profile dump default --config-path components.ingressGateways
▒ istioctl profile dump default --config-path values.gateways.istio-ingressgateway
- install - Ingress-gateway 를 NodePort (32080)로 override 설치
▒ istioctl install --set profile=default -f - <<EOF
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
components:
ingressGateways:
- enabled: true
k8s:
service:
ports:
- name: status-port
port: 15021
targetPort: 15021
- name: http2
port: 80
targetPort: 8080
nodePort: 32080
- name: https
port: 443
targetPort: 8443
nodePort: 32443
- name: tls
port: 15443
targetPort: 15443
name: istio-ingressgateway
values:
gateways:
istio-ingressgateway:
type: NodePort
EOF
Install Addons : Promethus & Kiali
-
https://kiali.io/documentation/latest/quick-start/
-
Install Promethus & Kiali
▒ kubectl apply -n istio-system -f samples/addons/prometheus.yaml
▒ kubectl apply -n istio-system -f samples/addons/kiali.yaml
- Expose Kiali UI
▒ kubectl apply -n istio-system -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: default-gateway
spec:
selector:
istio: ingressgateway
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: kiali
spec:
hosts:
- "*"
gateways:
- default-gateway
http:
- match:
- uri:
prefix: /kiali
route:
- destination:
port:
number: 20001
host: kiali
EOF
1.2.4
- 다운로드 + 네임스페이스 생성
▒ cd install/istio/
▒ curl -L https://git.io/getLatestIstio | ISTIO_VERSION=1.2.4 sh -
▒ kubectl create ns istio-system
- CRDs 생성
▒ helm template istio-1.2.4/install/kubernetes/helm/istio-init --name istio-init --namespace istio-system | kubectl apply -f -
- 설치
▒ helm template istio-1.2.4/install/kubernetes/helm/istio --name istio --namespace istio-system \
--set gateways.istio-ingressgateway.type=NodePort \
| kubectl apply -f -
Values
- Kiali 함께 설치
--set kiali.enabled=true
- 프로메테우스 신규 설치 하지 않고 다른 프로메테우스 사용
--set prometheus.enabled=false
--set prometheusAddr=http://prometheus.cocktail-addon.svc.cluster.local:80
external 프로메테우스 사용시
기존 운영중인 프로메테우스에서 istio metrics 수집 처리하도록 configmap 수정 작업
- 아래와 같이 configmap 에
istio-mesh
,istio-telemetry
job 추가
▒ kubectl edit configmap prometheus -n cocktail-addon
- job_name: 'istio-mesh'
kubernetes_sd_configs:
- role: endpoints
namespaces:
names:
- istio-system
relabel_configs:
- source_labels: [__meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
action: keep
regex: istio-telemetry;prometheus
- job_name: 'istio-telemetry'
kubernetes_sd_configs:
- role: endpoints
namespaces:
names:
- istio-system
relabel_configs:
- source_labels: [__meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
action: keep
regex: istio-telemetry;http-monitoring
posted at 2022/03/18 09:42