[기계번역] Prometheus & Grafana Monitoring Stack on TKGS workload cluster in vSphere with Tanzu

이 글에서는 TKG Service가 만든 Tanzu Kubernetes 워크로드 클러스터에 Carvel 패키지를 구축했을 때 이미 수행한 작업을 토대로 작성하겠습니다. 해당 게시물에서 요구 사항이 무엇인지, tanzu 명령줄을 사용하여 워크로드 클러스터에 컨텍스트를 설정하고 TKG v1.4 패키지 저장소를 추가하는 방법을 살펴보았습니다. 또한 첫 번째 패키지인 Cert Manager를 구축하기 위해 tanzu CLI를 사용하는 방법도 살펴보았습니다. 이제 Contour(Ingress용), External-DNS(기존 DNS에 연결용), Prometheus(클러스터 모니터링용) 및 Grafana(대시보드용)와 같은 다른 여러 패키지의 배포를 계속 진행하겠습니다. 여기서의 목표는 Tanzu Kubernetes 클러스터를 모니터링하기 위한 모니터링 스택을 구축하는 것입니다. 이 패키지들은 Tanzu Kubernetes에서 최소한의 구성으로 함께 잘 작동하도록 제작되었으며, 이 모니터링 스택을 너무 많은 노력 없이 빠르게 구축할 수 있어야 합니다. 각 패키지에서 다양한 구성 값을 검색하고 일부 맞춤형 값을 사용하여 패키지를 배포하는 방법을 살펴보겠습니다. 그것을 자세히 살펴보도록 하겠습니다.

Cert Manager(이미 설치)

우리는 이미 이전 포스트에 Cert Manager를 배치했습니다. Cert Manager를 사용하면 모니터링 앱 스택의 보안이 강화됩니다. 이 기능은 다음에 전개할 Contour와 Envoy 수신 사이의 통신을 보호하는 데 사용됩니다. Cert Manager는 인증서 관리를 자동화하여 certificates-as-a-service 기능을 제공합니다. 이전에 보았듯이, Cert Manager에 맞춤형 값을 제공할 필요는 없습니다. 유일한 구성 옵션은 cert-manager가 패키지 리소스(기본값: cert-manager)를 배포하는 네임스페이스입니다.

% tanzu package installed list
\ Retrieving installed packages...
  NAME          PACKAGE-NAME                   PACKAGE-VERSION       STATUS
  cert-manager  cert-manager.tanzu.vmware.com  1.1.0+vmware.1-tkg.2  Reconcile succeeded

Contour

Contour을 설치한 이유는 프로메테우스가 Ingress에 대한 요구사항이 있기 때문입니다. Contour은 Envoy Ingress 컨트롤러를 통해 이 기능을 제공합니다. Contour은 Envoy의 제어면 역할을 하는 오픈 소스 Kubernetes 수신 컨트롤러입니다. 이 배포에서는 NSX ALB를 사용하므로 사용자 지정 Contour 데이터 파일을 제공하여 Envoy 서비스 유형을 로드 밸런서로 설정할 수 있을 뿐만 아니라 Contour 복제본 수를 설정할 수 있습니다. 다음 명령을 사용하여 구성 가능한 값을 검색할 수 있습니다. 먼저 Contour packager 버전을 받아야 합니다.

% tanzu package available list contour.tanzu.vmware.com
/ Retrieving package versions for contour.tanzu.vmware.com...
  NAME                      VERSION                RELEASED-AT
  contour.tanzu.vmware.com  1.17.1+vmware.1-tkg.1  2021-07-23 19:00:00 +0100 IST

패키지 버전을 사용하면 기본 Contour 값을 검색할 수 있습니다. (다른 모든 Carvel 패키지에서 값 파일을 검색하기 위해 정확히 동일한 방법을 사용합니다. 따라서 Contour 패키지에 대한 자세한 절차는 보여드리지만, 이 글에 설치하는 다른 패키지는 반복하지 않겠습니다.)

% image_url=$(kubectl get packages contour.tanzu.vmware.com.1.17.1+vmware.1-tkg.1 \
-o jsonpath='{.spec.template.spec.fetch[0].imgpkgBundle.image}')


% echo $image_url
projects.registry.vmware.com/tkg/packages/standard/contour@sha256:73dc13131e6c1cfa8d3b56aeacd97734447acdf1ab8c0862e936623ca744e7c4


% mkdir ./contour


% imgpkg pull -b $image_url -o ./contour
Pulling bundle 'projects.registry.vmware.com/tkg/packages/standard/contour@sha256:73dc13131e6c1cfa8d3b56aeacd97734447acdf1ab8c0862e936623ca744e7c4'
  Extracting layer 'sha256:93c1f3e88f0e0181e11a38a4e04ac16c21c5949622917b6c72682cc497ab3e44' (1/1)

Locating image lock file images...
One or more images not found in bundle repo; skipping lock file update

Succeeded

%

값 파일은 이제 ./contour/config/values.yaml에서 사용할 수 있습니다. 이러한 값은 패키지가 배포되는 기본값이지만 다양한 요구 사항에 맞게 수정할 수 있습니다. 기본 등고선 값은 다음과 같습니다.

infrastructure_provider: vsphere
namespace: tanzu-system-ingress
contour:
  configFileContents: {}
  useProxyProtocol: false
  replicas: 2
  pspNames: "vmware-system-restricted"
  logLevel: info
envoy:
  service:
    type: null
    annotations: {}
    nodePorts:
      http: null
      https: null
    externalTrafficPolicy: Cluster
    aws:
      LBType: classic
    disableWait: false
  hostPorts:
    enable: true
    http: 80
    https: 443
  hostNetwork: false
  terminationGracePeriodSeconds: 300
  logLevel: info
  pspNames: null
certificates:
  duration: 8760h
  renewBefore: 360h

보통 변경하기 전에 값 파일을 복사합니다. 모든 필드를 사용자 정의 값 파일에 추가할 필요는 없습니다. 워크로드 클러스터에 이 패키지를 구축하려면 이전에 설치된 Cert Manager를 사용하고 Envoy를 위해 LoadBalancer 서비스 유형을 사용해야 합니다. 따라서 Contour에 대한 나의 맞춤 값 파일은 다음과 같이 보일 것입니다.

% cat contour.yaml
envoy:
  service:
    type: LoadBalancer
certificates:
  useCertManager: true

이제 다음과 같이 contour.yaml이라는 맞춤형 값 파일을 사용하여 Contour 패키지를 배포할 수 있습니다.

% tanzu package available list contour.tanzu.vmware.com
/ Retrieving package versions for contour.tanzu.vmware.com...
  NAME                      VERSION                RELEASED-AT
  contour.tanzu.vmware.com  1.17.1+vmware.1-tkg.1  2021-07-23 19:00:00 +0100 IST


% tanzu package install contour --package-name contour.tanzu.vmware.com --version 1.17.1+vmware.1-tkg.1 \
--values-file contour.yaml
/ Installing package 'contour.tanzu.vmware.com'
| Getting namespace 'default'
/ Getting package metadata for 'contour.tanzu.vmware.com'
| Creating service account 'contour-default-sa'
| Creating cluster admin role 'contour-default-cluster-role'
| Creating cluster role binding 'contour-default-cluster-rolebinding'
| Creating secret 'contour-default-values'
\ Creating package resource
\ Package install status: Reconciling

 Added installed package 'contour' in namespace 'default'

%

다양한 방법으로 패키지가 성공적으로 설치되었는지 확인할 수 있습니다.

% kubectl get apps
NAME          DESCRIPTION          SINCE-DEPLOY  AGE
cert-manager  Reconcile succeeded  45s            138m
contour       Reconcile succeeded  92s            96s


% tanzu package installed list
- Retrieving installed packages...
  NAME          PACKAGE-NAME                   PACKAGE-VERSION        STATUS
  cert-manager  cert-manager.tanzu.vmware.com  1.1.0+vmware.1-tkg.2   Reconcile succeeded
  contour       contour.tanzu.vmware.com       1.17.1+vmware.1-tkg.1  Reconcile succeeded

아래 나온 것처럼 특사 데몬셋을 포함하여 네임스페이스 tanzu-system-ingress(기본값 파일에서 구성한 대로)에 배포된 패키지 리소스 개체를 검사할 수 있습니다.

% kubectl get daemonset/envoy -n tanzu-system-ingress
NAME    DESIRED  CURRENT  READY  UP-TO-DATE  AVAILABLE  NODE SELECTOR  AGE
envoy   3        3        3      3            3          <none>          2m7s

Envoy가 LoadBalancer 서비스를 할당받았음을 관찰해야(확인) 합니다.

% kubectl get svc -n tanzu-system-ingress
NAME      TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
contour   ClusterIP      100.69.120.194   <none>        8001/TCP                     5m9s
envoy     LoadBalancer   100.71.42.85     xx.xx.62.20   80:30368/TCP,443:32723/TCP   5m8s

이제 External-DNS 구축으로 넘어갈 수 있습니다.

External-DNS

이 패키지는 선택 사항입니다. 외부 DNS에 Kubernetes 서비스를 자동으로 추가할 수 있습니다. 나중에 Grafana 대시보드를 살펴볼 때 FQDN을 사용하여 액세스할 수 있으므로 이 기능이 유용합니다. 이 예에서는 다음 지침에 따라 보안되지 않은 연결을 Microsoft DNS에 통합합니다. 통합하려는 도메인에 대해 Microsoft DNS 구성에서 수행할 수 있는 두 가지 단계는 (1) 보안 및 비보안 동적 업데이트 모두 허용, (2) 모든 서버로 영역 전송을 허용합니다. RFC2136 공급자를 사용하고 있습니다. 이렇게 하면 Microsoft DNS와 같은 외부 DNS용 공급자로 RFC2136 호환 DNS 서버를 사용할 수 있습니다. rainpole.com 도메인과 통합하고 있습니다. 제 External-DNS values 파일의 복사본이 포함되어 있습니다. rf2136-insecure 인수(보안되지 않은 동적 업데이트 지원)와 rf2136-tsig-axfr(지원 영역 전송)을 포함합니다. 레코드 삭제를 위해 영역 이전이 필요합니다. 또한 소스가 contour-httproxy로 설정되어 있으므로 소스를 사용하여 만든 서비스가 DNS에 추가됩니다(예: Prometheus 및 Grafana). 이거 나중에 봐요.

$ cat external-dns.yaml
namespace: tanzu-system-service-discovery
deployment:
  args:
    - --registry=txt
    - --txt-prefix=external-dns-
    - --txt-owner-id=tanzu
    - --provider=rfc2136
    - --rfc2136-host=xx.xx.51.252
    - --rfc2136-port=53
    - --rfc2136-zone=rainpole.com
    - --rfc2136-insecure
    - --rfc2136-tsig-axfr
    - --source=service
    - --source=contour-httpproxy
    - --source=ingress
    - --domain-filter=rainpole.com

이제 위의 값을 사용하여 이 패키지를 배포하겠습니다.

% tanzu package available list external-dns.tanzu.vmware.com
- Retrieving package versions for external-dns.tanzu.vmware.com...
  NAME                           VERSION               RELEASED-AT
  external-dns.tanzu.vmware.com  0.8.0+vmware.1-tkg.1  2021-06-11 19:00:00 +0100 IST


% tanzu package install external-dns -p external-dns.tanzu.vmware.com -v 0.8.0+vmware.1-tkg.1 \
--values-file external-dns.yaml
| Installing package 'external-dns.tanzu.vmware.com'
/ Getting namespace 'default'
- Getting package metadata for 'external-dns.tanzu.vmware.com'
| Creating service account 'external-dns-default-sa'
| Creating cluster admin role 'external-dns-default-cluster-role'
| Creating cluster role binding 'external-dns-default-cluster-rolebinding'
| Creating secret 'external-dns-default-values'
\ Creating package resource
/ Package install status: Reconciling

 Added installed package 'external-dns' in namespace 'default'

%

External-DNS는 패키지 리소스를 tanzu-system-service-discovery에 배포합니다. 외부 dns 포드의 로그를 검사하면 RFC2136이 구성되었다는 메시지가 표시됩니다.

% kubectl -n tanzu-system-service-discovery logs  external-dns-777f74bd6c-zs7bn
.
.
.
time="2022-02-15T15:08:09Z" level=info msg="Instantiating new Kubernetes client"
time="2022-02-15T15:08:09Z" level=info msg="Using inCluster-config based on serviceaccount-token"
time="2022-02-15T15:08:09Z" level=info msg="Created Kubernetes client https://100.64.0.1:443"
time="2022-02-15T15:08:10Z" level=info msg="Created Dynamic Kubernetes client https://100.64.0.1:443"
time="2022-02-15T15:08:12Z" level=info msg="Configured RFC2136 with zone 'rainpole.com.' and nameserver 'xx.xx.51.252:53'"

모두 좋아 보여요. 이제 프로메테우스로 넘어가죠

Prometheus

Prometheus는 실시간 메트릭스를 기록하고 알림 기능을 제공합니다. Ingress(또는 HTTProxy)에 대한 요구사항이 있으며 해당 요구 사항은 Contour이 충족합니다. Prometheus에는 꽤 많은 구성 옵션이 있는데, 그 중 대부분은 여기에 나와 있지 않습니다. 내 클러스터에서 Prometheus는 Ingress를 사용하도록 구성되어 있으며 외부 DNS 도메인인 prometheus-tkgs-cork.rainpole.com의 일부인 FDQN을 사용합니다(자신의 DNS에 있는 도메인으로 변경해야 합니다). 또한 영구 볼륨에 대해 정의된 일부 스토리지 클래스도 있습니다. Prometheus 서버에는 150GB 볼륨이 필요하고 경고 관리자에는 2GB 볼륨이 필요합니다.

% cat prometheus.yaml
ingress:
  enabled: true
  virtual_host_fqdn: "prometheus-tkgs-cork.rainpole.com"
  prometheus_prefix: "/"
  alertmanager_prefix: "/alertmanager/"
  prometheusServicePort: 80
  alertmanagerServicePort: 80
prometheus:
  pvc:
    storageClassName: vsan-default-storage-policy
alertmanager:
  pvc:
    storageClassName: vsan-default-storage-policy

우리는 이제 위의 값을 가진 패키지를 배포합니다.

% tanzu package available list prometheus.tanzu.vmware.com
- Retrieving package versions for prometheus.tanzu.vmware.com...
  NAME                         VERSION                RELEASED-AT
  prometheus.tanzu.vmware.com  2.27.0+vmware.1-tkg.1  2021-05-12 19:00:00 +0100 IST


% tanzu package install prometheus --package-name prometheus.tanzu.vmware.com \
--version 2.27.0+vmware.1-tkg.1 --values-file prometheus.yaml
- Installing package 'prometheus.tanzu.vmware.com'
| Getting namespace 'default'
/ Getting package metadata for 'prometheus.tanzu.vmware.com'
| Creating service account 'prometheus-default-sa'
| Creating cluster admin role 'prometheus-default-cluster-role'
| Creating cluster role binding 'prometheus-default-cluster-rolebinding'
| Creating secret 'prometheus-default-values'
\ Creating package resource
| Package install status: Reconciling

 Added installed package 'prometheus' in namespace 'default'

%

이렇게 하면 네임스페이스 tanzu-monitoring-system에 Prometheus용 패키지 리소스가 많이 생성됩니다.

% kubectl get deploy,rs,pods -n tanzu-system-monitoring
NAME                                            READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/alertmanager                    1/1     1            1           5m11s
deployment.apps/prometheus-kube-state-metrics   1/1     1            1           5m13s
deployment.apps/prometheus-pushgateway          1/1     1            1           5m12s
deployment.apps/prometheus-server               1/1     1            1           5m13s

NAME                                                      DESIRED   CURRENT   READY   AGE
replicaset.apps/alertmanager-669c4f497d                   1         1         1       5m11s
replicaset.apps/prometheus-kube-state-metrics-6ccbc7bfc   1         1         1       5m13s
replicaset.apps/prometheus-pushgateway-6d7bc967f9         1         1         1       5m12s
replicaset.apps/prometheus-server-7cc7df4dd6              1         1         1       5m13s

NAME                                                READY   STATUS    RESTARTS   AGE
pod/alertmanager-669c4f497d-wsx2s                   1/1     Running   0          5m11s
pod/prometheus-cadvisor-fxhw8                       1/1     Running   0          5m13s
pod/prometheus-cadvisor-m758x                       1/1     Running   0          5m13s
pod/prometheus-cadvisor-mzzm7                       1/1     Running   0          5m13s
pod/prometheus-kube-state-metrics-6ccbc7bfc-fsggg   1/1     Running   0          5m13s
pod/prometheus-node-exporter-24rc7                  1/1     Running   0          5m13s
pod/prometheus-node-exporter-9b9nh                  1/1     Running   0          5m13s
pod/prometheus-node-exporter-g6vtp                  1/1     Running   0          5m13s
pod/prometheus-node-exporter-p8tkk                  1/1     Running   0          5m13s
pod/prometheus-pushgateway-6d7bc967f9-stctt         1/1     Running   0          5m12s
pod/prometheus-server-7cc7df4dd6-ncbhz              2/2     Running   0          5m13s


% kubectl get httpproxy -n tanzu-system-monitoring
NAME                   FQDN                                TLS SECRET      STATUS  STATUS DESCRIPTION
prometheus-httpproxy   prometheus-tkgs-cork.rainpole.com   prometheus-tls  valid   Valid HTTPProxy


% kubectl get pvc,pv -n tanzu-system-monitoring
NAME                                      STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS                  AGE
persistentvolumeclaim/alertmanager        Bound    pvc-912dacdd-6533-45a4-948a-34b9fd383d37   2Gi        RWO            vsan-default-storage-policy   5m29s
persistentvolumeclaim/prometheus-server   Bound    pvc-08e145e4-a267-4e1e-89d2-513cff467512   150Gi      RWO            vsan-default-storage-policy   5m29s

NAME                                                        CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                                       STORAGECLASS                  REASON   AGE
persistentvolume/pvc-08e145e4-a267-4e1e-89d2-513cff467512   150Gi      RWO            Delete           Bound    tanzu-system-monitoring/prometheus-server   vsan-default-storage-policy            3m20s
persistentvolume/pvc-912dacdd-6533-45a4-948a-34b9fd383d37   2Gi        RWO            Delete           Bound    tanzu-system-monitoring/alertmanager        vsan-default-storage-policy            5m27s


% kubectl get svc -n tanzu-system-monitoring
NAME                            TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
alertmanager                    ClusterIP   100.71.143.203   <none>        80/TCP          6m15s
prometheus-kube-state-metrics   ClusterIP   None             <none>        80/TCP,81/TCP   6m17s
prometheus-node-exporter        ClusterIP   100.67.91.192    <none>        9100/TCP        6m17s
prometheus-pushgateway          ClusterIP   100.70.217.119   <none>        9091/TCP        6m17s
prometheus-server               ClusterIP   100.67.174.220   <none>        80/TCP          6m17s

httpproxy가 성공적으로 생성되었고 외부 DNS가 작동 중인 경우 이제 브라우저를 통해 Prometheus 서비스의 FQDN에 연결할 수 있습니다. DNS와 통합하지 않은 경우 로컬 /etc/hosts 파일에 Prometheus FQDN 및 Envoy Load Balancer IP 주소를 추가할 수 있습니다. 이것 또한 효과가 있을 것입니다. 그러면 다음과 유사한 내용이 표시됩니다.

Prometheus가 성공적으로 설치되었으므로 대시보드용 Grafana 패키지를 배포할 수 있습니다.

Grafana

이전과 마찬가지로 Grafana 구성 값은 앞에서 설명한 것과 동일한 방법으로 검색할 수 있습니다. 꽤 많은 값이 있지만, 이전과 마찬가지로 값 파일은 단순하게 유지되도록 다시 노력하겠습니다. 값 파일을 통해 우리는 (프로메테우스에게) 데이터 소스를 제공할 수 있습니다. Prometheus URL은 Prometheus 서버의 포드 이름과 네임스페이스로 구성된 내부 Kubernetes URL입니다. 그라파나도 동일한 클러스터에서 실행되기 때문에 프로메테우스와 그라파나는 내부 쿠버네티스 네트워킹을 사용하여 통신할 수 있습니다. 샘플 그라파나 값 파일입니다.

% cat grafana.yaml
namespace: tanzu-system-dashboard
ingress:
  virtual_host_fqdn: "graf-tkgs-cork.rainpole.com"
grafana:
  config:
    datasource_yaml: |-
      apiVersion: 1
      datasources:
        - name: Prometheus
          type: prometheus
         url: prometheus-server.tanzu-system-monitoring.svc.cluster.local
          access: proxy
          isDefault: true
  pvc:
    storageClassName: vsan-default-storage-policy
% tanzu package available list grafana.tanzu.vmware.com
\ Retrieving package versions for grafana.tanzu.vmware.com...
  NAME                      VERSION               RELEASED-AT
  grafana.tanzu.vmware.com  7.5.7+vmware.1-tkg.1  2021-05-19 19:00:00 +0100 IST


% tanzu package install grafana -p grafana.tanzu.vmware.com -v 7.5.7+vmware.1-tkg.1 \
--values-file grafana.yaml
- Installing package 'grafana.tanzu.vmware.com'
| Getting namespace 'default'
/ Getting package metadata for 'grafana.tanzu.vmware.com'
| Creating service account 'grafana-default-sa'
- Creating cluster admin role 'grafana-default-cluster-role'
| Creating cluster role binding 'grafana-default-cluster-rolebinding'
| Creating secret 'grafana-default-values'
\ Creating package resource
| Package install status: Reconciling

 Added installed package 'grafana' in namespace 'default'

%

다시 한 번, 다양한 그라파나 패키지 리소스가 tanzu-system-dashboard 네임스페이스에 생성됩니다. Grafana는 로드 밸런서 IP와 자체 httpproxy를 가져옵니다. Grafana FQDN도 구성된 경우 외부 DNS에 자동으로 추가해야 합니다.

% kubectl -n tanzu-system-dashboard get pods
NAME                       READY   STATUS    RESTARTS   AGE
grafana-7fc98dd5b8-bq2mw   2/2     Running   0          2m25s


% kubectl -n tanzu-system-dashboard get svc
NAME      TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
grafana   LoadBalancer   100.67.139.55   xx.xx.62.21   80:31126/TCP   2m33s


% kubectl -n tanzu-system-dashboard get httpproxy
NAME                FQDN                          TLS SECRET    STATUS   STATUS DESCRIPTION
grafana-httpproxy   graf-tkgs-cork.rainpole.com   grafana-tls   valid    Valid HTTPProxy


% kubectl -n tanzu-system-dashboard get pvc
NAME          STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS                  AGE
grafana-pvc   Bound    pvc-72e06aa7-9944-439a-80e0-40fecd61915b   2Gi        RWO            vsan-default-storage-policy   2m54s

모든 것이 올바르게 작동한다고 가정하면 이제 Grafana FQDN에 연결하여 vSphere with Tanzu 워크로드 클러스터의 대시보드를 볼 수 있습니다. DNS와 통합하지 않은 경우 위에 표시된 Grafana FQDN 및 Grafana 로드 밸런서 IP 주소를 로컬 /etc/hosts에 추가합니다. Grafana의 기본 로그인은 admin/admin이며 새 admin 암호를 설정하라는 메시지가 표시됩니다. 그런 다음 왼쪽의 Dashboards > Manage로 이동하여 두 개의 기존 대시보드 중 하나를 선택하여 몇 가지 메트릭을 확인합니다. 이것은 TKG Kubernetes 클러스터 모니터링 대시보드입니다. 물론, 원하는 경우 직접 맞춤형 대시보드를 작성할 수 있습니다.

이를 통해 TKG 서비스를 통해 프로비저닝된 워크로드 클러스터에 Prometheus 및 Grafana 모니터링 스택을 구축하는 것이 얼마나 쉬운지에 대한 유용한 통찰력을 얻을 수 있기를 바랍니다. 다음은 클러스터에 설치된 전체 패키지 목록입니다.

% tanzu package installed list
- Retrieving installed packages...
  NAME          PACKAGE-NAME                   PACKAGE-VERSION        STATUS
  cert-manager  cert-manager.tanzu.vmware.com  1.1.0+vmware.1-tkg.2   Reconcile succeeded
  contour       contour.tanzu.vmware.com       1.17.1+vmware.1-tkg.1  Reconcile succeeded
  external-dns  external-dns.tanzu.vmware.com  0.8.0+vmware.1-tkg.1   Reconcile succeeded
  grafana       grafana.tanzu.vmware.com       7.5.7+vmware.1-tkg.1   Reconcile succeeded
  prometheus    prometheus.tanzu.vmware.com    2.27.0+vmware.1-tkg.1  Reconcile succeeded


% kubectl get apps
NAME           DESCRIPTION           SINCE-DEPLOY   AGE
cert-manager   Reconcile succeeded   58s            172m
contour        Reconcile succeeded   29s            35m
external-dns   Reconcile succeeded   39s            25m
grafana        Reconcile succeeded   2m20s          2m24s
prometheus     Reconcile succeeded   22s            17m

마지막으로, 이제 VMware Cloud에서 Tanzu Services를 이용할 수 있습니다. VMware Cloud를 사용하면 vSphere 관리자는 기본 SDDC 인프라를 관리할 필요 없이 DevOps 팀을 위해 TKG 서비스를 통해 Tanzu Kubernetes 워크로드 클러스터를 구축할 수 있습니다. 여기에서 Tanzu Services에 대해 자세히 읽어보십시오.

출처 : https://cormachogan.com/2022/02/17/prometheus-grafana-monitoring-stack-on-tkgs-workload-cluster-in-vsphere-with-tanzu/
2 comments
답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

You May Also Like
Read More

Tanzu Kubernetes Grid 개념

관리 클러스터(Management Cluster) 관리 클러스터는 Tanzu Kubernetes Grid 인스턴스를 생성할 때 배포하는 첫 번째 요소다. 관리 클러스터는 Tanzu…