vSphere 7.x용 TKr로 프로비저닝된 TKG 클러스터에 Grafana를 설치하려면 다음 지침을 참조하십시오.
사전 요구 사항
vSphere 7.x용 TKr에 표준 패키지를 설치하기 위한 워크플로의 내용을 참조하십시오.
Grafana 설치
Grafana를 설치합니다.
- 저장소에서 사용 가능한 Grafana 버전을 나열합니다.
kubectl get packages -n tkg-system | grep grafana
- Grafana 네임스페이스를 생성합니다.
kubectl create ns tanzu-system-dashboards
- 네임스페이스에 대한 PSA 레이블을 생성합니다.
kubectl label namespace tanzu-system-dashboards pod-security.kubernetes.io/enforce=privileged
- 또는 파일
ns-grafana-dashboard.yaml
을 사용하여 Grafana 네임스페이스 및 레이블을 선언적으로 생성합니다.apiVersion: v1kind: Namespace metadata: name: grafana-dashboard --- apiVersion: v1 kind: Namespace metadata: name: tanzu-system-dashboards labels: pod-security.kubernetes.io/enforce: privileged
grafana-data-values.yaml
을 생성합니다.Grafana 패키지 참조의 내용을 참조하십시오.
grafana-data-values.yaml
파일을 입력으로 사용하여 암호를 생성합니다.kubectl create secret generic grafana-data-values --from-file=values.yaml=grafana-data-values.yaml -n tkg-system
secret/grafana-data-values created
- 암호를 확인합니다.
kubectl get secrets -A
kubectl describe secret grafana-data-values -n tkg-system
- 필요한 경우 환경에 맞게
grafana-data-values
를 사용자 지정합니다.Grafana 패키지 참조 항목을 참조하십시오.
데이터 값을 업데이트하는 경우 다음 명령을 사용하여 암호를 업데이트합니다.kubectl create secret generic grafana-data-values --from-file=values.yaml=grafana-data-values.yaml -n tkg-system -o yaml --dry-run=client | kubectl replace -f-
secret/grafana-data-values replaced
grafana.yaml
규격을 생성합니다.vSphere 7.x용 TKr에 Grafana 설치의 내용을 참조하십시오.
- Grafana를 설치합니다.
kubectl apply -f grafana.yaml
serviceaccount/grafana-sa created clusterrolebinding.rbac.authorization.k8s.io/grafana-role-binding created packageinstall.packaging.carvel.dev/grafana created
- Grafana 패키지 설치를 확인합니다.
kubectl get pkgi -A | grep grafana
- Grafana 개체를 확인합니다.
kubectl get all -n tanzu-system-dashboards
엔보이 LoadBalancer를 사용하여 Grafana 대시보드에 액세스
LoadBalancer 유형의 필수 Contour 엔보이 서비스가 배포되고 Grafana 구성 파일에서 이를 지정한 경우 로드 밸런서의 외부 IP 주소를 가져오고 Grafana FQDN에 대한 DNS 레코드를 생성합니다.
- LoadBalancer 유형의 엔보이 서비스에 대한
External-IP
주소를 가져옵니다.kubectl get service envoy -n tanzu-system-ingress
반환된External-IP
주소가 다음과 같이 표시됩니다.NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE envoy LoadBalancer 10.99.25.220 10.195.141.17 80:30437/TCP,443:30589/TCP 3h27m
또는 다음 명령을 사용하여External-IP
주소를 가져올 수 있습니다.kubectl get svc envoy -n tanzu-system-ingress -o jsonpath='{.status.loadBalancer.ingress[0]}'
- Grafana 확장 설치를 확인하려면 로드 밸런서의
External-IP
주소에 매핑된 Grafana FQDN으로 로컬/etc/hosts
파일을 업데이트합니다. 예를 들면 다음과 같습니다.127.0.0.1 localhost 127.0.1.1 ubuntu #TKG Grafana Extension with Envoy Load Balancer 10.195.141.17 grafana.system.tanzu
https://grafana.system.tanzu
로 이동하여 Grafana 대시보드에 액세스합니다.사이트는 자체 서명된 인증서를 사용하기 때문에 대시보드에 액세스하려면 먼저 브라우저별 보안 주의를 거쳐 이동해야 할 수 있습니다.
- 운영 액세스를 위해 엔보이 서비스 로드 밸런서
External-IP
주소를 Grafana 대시보드에 매핑하는 DNS 서버에 두 개의 CNAME 레코드를 생성합니다.
엔보이 NodePort를 사용하여 Grafana 대시보드에 액세스
NodePort 유형의 필수 Contour 엔보이 서비스가 배포되고 Grafana 구성 파일에서 이를 지정한 경우 작업자 노드의 가상 시스템 IP 주소를 가져오고 Grafana FQDN에 대한 DNS 레코드를 생성합니다.
- 클러스터가 프로비저닝된 vSphere 네임스페이스로 컨텍스트를 전환합니다.
kubectl config use-context VSPHERE-NAMESPACE
- 클러스터의 노드를 나열합니다.
kubectl get virtualmachines
- 작업자 노드 중 하나를 선택하고 다음 명령을 사용하여 설명합니다.
kubectl describe virtualmachines tkgs-cluster-X-workers-9twdr-59bc54dc97-kt4cm
- 가상 시스템의 IP 주소(예:
Vm Ip: 10.115.22.43
)를 찾습니다. - Grafana 확장 설치를 확인하려면 작업자 노드 IP 주소에 매핑된 Grafana FQDN으로 로컬
/etc/hosts
파일을 업데이트합니다. 예를 들면 다음과 같습니다.127.0.0.1 localhost 127.0.1.1 ubuntu # TKG Grafana with Envoy NodePort 10.115.22.43 grafana.system.tanzu
https://grafana.system.tanzu
로 이동하여 Grafana 대시보드에 액세스합니다.사이트는 자체 서명된 인증서를 사용하기 때문에 대시보드에 액세스하려면 먼저 브라우저별 보안 주의를 거쳐 이동해야 할 수 있습니다.
grafana-data-values.yaml
다음
grafana-data-values.yaml
파일 예를 참조하십시오.
namespace: tanzu-system-dashboards grafana: pspNames: "vmware-system-restricted" deployment: replicas: 1 updateStrategy: Recreate pvc: accessMode: ReadWriteOnce storage: 2Gi storageClassName: wcpglobalstorageprofile secret: admin_user: YWRtaW4= admin_password: YWRtaW4= type: Opaque service: port: 80 targetPort: 3000 type: LoadBalancer ingress: enabled: true prefix: / servicePort: 80 virtual_host_fqdn: grafana.system.tanzu
grafana.yaml
다음
grafana.yaml
규격 예를 참조하십시오. 필요에 따라 패키지 버전을 업데이트합니다.
apiVersion: v1 kind: ServiceAccount metadata: name: grafana-sa namespace: tkg-system annotations: pod-security.kubernetes.io/enforce: "privileged" --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: grafana-role-binding roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: grafana-sa namespace: tkg-system --- apiVersion: packaging.carvel.dev/v1alpha1 kind: PackageInstall metadata: name: grafana namespace: tkg-system spec: serviceAccountName: grafana-sa packageRef: refName: grafana.tanzu.vmware.com versionSelection: constraints: 10.0.1+vmware.1-tkg.2 #PKG-VERSION values: - secretRef: name: grafana-data-values