Rancher Preview 2.3.0-alpha5 Istio kiali Jaeger Promethesu+Grafana

Rancher2.3 Preview로서, Istio kiali Jaeger 그리고 2.2에서 동봉된 Prometheus+Grafana와는 별도로 기능으로서 추가되었습니다.

Bookinfo 애플리케이션을 기반으로 시도해 보겠습니다.

환경 정보



환경으로는 Rancher에서 GKE로 클러스터를 구축하여 Bookinfo 앱을 배포해 보았습니다.



Rancher Server




품목
입력 개요


이름
rancher-server


아시아-northeast1-b

기계 유형
vCPUx1

부팅 디스크
우분투 18.04 LTS 디스크 크기 30GB

방화벽
HTTP 트래픽 허용, HTTPS 트래픽 허용을 모두 확인합니다.


GKE 클러스터



리소스는 많이 필요합니다. vCPU 수 8의 클러스터가 됩니다.


품목
입력 개요


이름
rancher-k8s-cluster


아시아-northeast1-a

기계 유형
n1-standard-2(2 vCPUs, 7.5GB RAM)

Node Count
4

Node Count
우분투


Istio Kiali Jaeger Prometheus+Grafana 환경 배포



네비게이션에서 Global > rancher-k8s-cluster를 선택합니다.


네비게이션에서 Tools-Istio를 선택합니다.


기본값으로 "Enable"버튼을 클릭합니다.



탐색에서 Default를 선택합니다.



내비게이션에서 Istio를 선택합니다.



화면이 전환되면 오른쪽 상단에 'Kiali Jaeger Grafana Prometheus' 아이콘이 표시됩니다. 각 아이콘을 클릭하면 대시보드 화면이 표시됩니다.



Kiali 대시보드


Jaeger 대시보드


Grafana 대시보드


Prometheus 대시보드


네비게이션에서 rancher-k8s-cluster를 선택합니다.



Launch kubectl 버튼을 클릭합니다.



콘솔이 시작됩니다.



Bookinfo 애플리케이션 배포



Bookinfo는 Istio의 샘플 애플리케이션이므로 먼저 Istio를 다운로드합니다.

명령
# Run kubectl commands inside here
# e.g. kubectl get all
> curl -L https://git.io/getLatestIstio | sh -
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  2140  100  2140    0     0   2372      0 --:--:-- --:--:-- --:--:--  104k
Downloading istio-1.2.0 from https://github.com/istio/istio/releases/download/1.2.0/istio-1.2.0-linux.tar.gz ...  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   614    0   614    0     0   1590      0 --:--:-- --:--:-- --:--:--  1590
100 20.2M  100 20.2M    0     0  6184k      0  0:00:03  0:00:03 --:--:-- 10.4M
Istio 1.2.0 Download Complete!

Istio has been successfully downloaded into the istio-1.2.0 folder on your system.

Next Steps:
See https://istio.io/docs/setup/kubernetes/install/ to add Istio to your Kubernetes cluster.

To configure the istioctl client tool for your workstation,
add the /nonexistent/istio-1.2.0/bin directory to your environment path variable with:
         export PATH="$PATH:/nonexistent/istio-1.2.0/bin"

Begin the Istio pre-installation verification check by running:
         istioctl verify-install 

Need more information? Visit https://istio.io/docs/setup/kubernetes/install/

라벨을 설정하여 Bookinfo 응용 프로그램 배포를 배포합니다.

명령
> cd istio-1.2.0/
> kubectl label namespace default istio-injection=enabled
namespace/default labeled
> kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
service/details created
serviceaccount/bookinfo-details created
deployment.apps/details-v1 created
service/ratings created
serviceaccount/bookinfo-ratings created
deployment.apps/ratings-v1 created
service/reviews created
serviceaccount/bookinfo-reviews created
deployment.apps/reviews-v1 created
deployment.apps/reviews-v2 created
deployment.apps/reviews-v3 created
service/productpage created
serviceaccount/bookinfo-productpage created
deployment.apps/productpage-v1 created

service 및 pod 상태를 확인합니다.

명령
> kubectl get services
NAME          TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
details       ClusterIP   10.43.247.245   <none>        9080/TCP   23s
kubernetes    ClusterIP   10.43.240.1     <none>        443/TCP    6m32s
productpage   ClusterIP   10.43.249.140   <none>        9080/TCP   22s
ratings       ClusterIP   10.43.255.36    <none>        9080/TCP   23s
reviews       ClusterIP   10.43.247.171   <none>        9080/TCP   23s
> kubectl get po
NAME                              READY   STATUS    RESTARTS   AGE
details-v1-7964b4bb49-hl4zt       2/2     Running   0          64s
productpage-v1-6c668694dc-f69hc   2/2     Running   0          63s
ratings-v1-7bb4dbd557-s8dwz       2/2     Running   0          63s
reviews-v1-597f899bf6-cvzs5       2/2     Running   0          64s
reviews-v2-664994896d-4vrvp       2/2     Running   0          64s
reviews-v3-fc984656d-cvdhb        2/2     Running   0          63s

curl 명령으로 액세스합니다.

명령
> kubectl exec -it $(kubectl get pod -l app=ratings -o jsonpath='{.items[0].metadata.name}') -c ratings -- curl productpage:9080/productpage | grep -o "<title>.*</title>"
<title>Simple Bookstore App</title>
>

탐색에서 Default를 선택합니다.


내비게이션에서 Istio를 선택합니다.


Kiali가 포함되어 있으므로 RancherUI에서 확인할 수 있습니다.


Kiali 아이콘을 클릭하여 Kiali 대시보드에서도 확인할 수 있습니다.


"Traffic Metrics"를 선택하면 Service에 의한 대기 시간과 Volume의 상태를 그래프로 볼 수 있습니다. 그래프에 커서를 맞추면 자세한 정보가 표시됩니다.


Jaeger 아이콘을 클릭하여 Jaeger 대시보드에서도 확인할 수 있습니다.


이상이 됩니다.

네비게이션에서 몇 번의 클릭으로 Istio kiali Jaeger Promethesu+Grafana 환경을 구축할 수 있는 것이 좋네요. Rancher에도 Service Mesh, Observerbility 환경이 2.3부터 정돈되기 시작하는 느낌이 들었습니다.

Rancher2.2에서 동봉된 Prometheus+Grafana는 클러스터, 프로젝트 레벨입니다만, Istio 환경용에도 추가되었으므로 리소스는 먹기 때문에 GA시에는 개선을 기대하고 싶은 곳입니다.

Announcing Preview Support for Istio

좋은 웹페이지 즐겨찾기