NetApp Kubernetes 모니터링 오퍼레이터 구성
Cloud Insights는 Kubernetes 컬렉션을 위한 * NetApp Kubernetes Monitoring Operator * (NKMO)를 제공합니다. 데이터 수집기 추가 시 "Kubernetes" 타일을 선택하면 됩니다.
연산자 및 데이터 수집기는 Cloud Insights Docker 레지스트리에서 다운로드됩니다. 그런 다음 NKMO는 Kubernetes 클러스터 노드에 구축된 운영자 호환 수집기를 관리하여 수집가의 수명 주기를 관리하는 등 데이터를 획득합니다. 이 체인에 이어 수집기에서 데이터를 획득하여 Cloud Insights로 전송합니다.
NetApp Kubernetes Monitoring Operator를 설치하기 전에
|
를 읽습니다 "설치 또는 업그레이드 전" NetApp Kubernetes 모니터링 운영자를 설치 또는 업그레이드하기 위한 설명서입니다. |
NetApp Kubernetes Monitoring Operator 설치
-
고유한 클러스터 이름 및 네임스페이스를 입력합니다. 있는 경우 업그레이드 중 이전 Kubernetes Operator에서 동일한 클러스터 이름과 네임스페이스를 사용합니다.
-
이러한 내용을 입력하면 다운로드 명령 스니펫을 클립보드에 복사할 수 있습니다.
-
스니펫을 _bash_window에 붙여 넣고 실행합니다. 오퍼레이터 설치 파일이 다운로드됩니다. 스니펫에는 고유한 키가 있으며 24시간 동안 유효합니다.
-
사용자 지정 또는 개인 리포지토리가 있는 경우 선택적 이미지 풀 스니펫을 복사하여 _bash_shell에 붙여 넣고 실행합니다. 이미지를 가져온 후 개인 저장소에 복사합니다. 동일한 태그 및 폴더 구조를 유지해야 합니다. operator-deployment.YAML_의 경로와 _operator-config.YAML_의 Docker 리포지토리 설정을 업데이트합니다.
-
필요한 경우 프록시 또는 개인 리포지토리 설정과 같은 사용 가능한 구성 옵션을 검토합니다. 에 대해 자세히 알아볼 수 있습니다 "구성 옵션".
-
준비가 되면 kubeck Apply 스니펫을 복사하고 다운로드한 다음 실행하여 Operator 를 배포합니다.
-
설치가 자동으로 진행됩니다. 완료되면 Next 단추를 클릭합니다.
-
설치가 완료되면 Next 단추를 클릭합니다. 또한 _operator-비밀.YAML_파일을 삭제하거나 안전하게 보관하십시오.
에 대해 자세히 알아보십시오 프록시를 구성하는 중입니다.
에 대해 자세히 알아보십시오 사용자 지정/프라이빗 Docker 저장소 사용.
NetApp Kubernetes Monitoring Operator를 설치할 때 Kubernetes EMS 로그 수집이 기본적으로 활성화됩니다. 설치 후 이 컬렉션을 비활성화하려면 Kubernetes 클러스터 세부 정보 페이지 상단의 * Modify Deployment * 버튼을 클릭하고 "Log collection"을 선택 취소합니다.
이 화면에는 현재 로그 수집 상태도 표시됩니다. 가능한 상태는 다음과 같습니다.
-
사용 안 함
-
활성화됨
-
Enabled - 설치가 진행 중입니다
-
사용 - 오프라인
-
활성화됨 - 온라인
-
오류 - API 키에 권한이 부족합니다
업그레이드 중
최신 NetApp Kubernetes 모니터링 사업자로 업그레이드
기존 운영자와 함께 AgentConfiguration이 존재하는지 확인합니다(네임스페이스가 DEFAULT_NetApp-MONITORING_이 아닌 경우 해당 네임스페이스를 대체합니다).
kubectl -n netapp-monitoring get agentconfiguration netapp-monitoring-configuration AgentConfiguration이 있는 경우:
-
설치합니다 기존 오퍼레이터에 대한 최신 운영자.
-
항상 확인하십시오 최신 컨테이너 이미지를 가져오는 중입니다 사용자 지정 리포지토리를 사용하는 경우
-
AgentConfiguration이 없는 경우:
-
Cloud Insights에서 인식하는 클러스터 이름을 기록합니다(네임스페이스가 기본 NetApp 모니터링이 아닌 경우 해당 네임스페이스를 대체).
kubectl -n netapp-monitoring get agent -o jsonpath='{.items[0].spec.cluster-name}' * 기존 운영자의 백업을 생성합니다(네임스페이스가 기본 NetApp 모니터링이 아닌 경우 적절한 네임스페이스를 대체).
kubectl -n netapp-monitoring get agent -o yaml > agent_backup.yaml * <<to-remove-the-netapp-kubernetes-monitoring-operator,설치 제거>> 기존 연산자. * <<installing-the-netapp-kubernetes-monitoring-operator,설치합니다>> 최신 운영자.
-
동일한 클러스터 이름을 사용합니다.
-
최신 운영자 YAML 파일을 다운로드한 후 배포하기 전에 agent_backup.YAML에서 발견된 모든 사용자 정의를 다운로드한 operator-config.YAML에 이식하십시오.
-
항상 확인하십시오 최신 컨테이너 이미지를 가져오는 중입니다 사용자 지정 리포지토리를 사용하는 경우
-
NetApp Kubernetes Monitoring Operator를 중지하고 시작합니다
NetApp Kubernetes Monitoring Operator를 중지하려면 다음을 수행합니다.
kubectl -n netapp-monitoring scale deploy monitoring-operator --replicas=0 NetApp Kubernetes Monitoring Operator를 시작하려면 다음을 수행합니다.
kubectl -n netapp-monitoring scale deploy monitoring-operator --replicas=1
제거 중
NetApp Kubernetes Monitoring Operator를 제거하려면 다음을 수행합니다
NetApp Kubernetes Monitoring Operator의 기본 네임스페이스는 "NetApp 모니터링"입니다. 고유한 네임스페이스를 설정한 경우 이러한 네임스페이스 및 모든 후속 명령 및 파일로 대체합니다.
다음 명령을 사용하여 모니터링 연산자의 최신 버전을 제거할 수 있습니다.
kubectl delete agent -A -l installed-by=nkmo-<name-space> kubectl delete ns,clusterrole,clusterrolebinding,crd -l installed-by=nkmo-<name-space>
첫 번째 명령이 "리소스를 찾을 수 없음"을 반환하면 다음 지침에 따라 모니터링 연산자의 이전 버전을 제거합니다.
다음 명령을 순서대로 실행합니다. 현재 설치에 따라 이러한 명령 중 일부는 '개체를 찾을 수 없음' 메시지를 반환할 수 있습니다. 이러한 메시지는 무시해도 됩니다.
kubectl -n <NAMESPACE> delete agent agent-monitoring-netapp kubectl delete crd agents.monitoring.netapp.com kubectl -n <NAMESPACE> delete role agent-leader-election-role kubectl delete clusterrole agent-manager-role agent-proxy-role agent-metrics-reader <NAMESPACE>-agent-manager-role <NAMESPACE>-agent-proxy-role <NAMESPACE>-cluster-role-privileged kubectl delete clusterrolebinding agent-manager-rolebinding agent-proxy-rolebinding agent-cluster-admin-rolebinding <NAMESPACE>-agent-manager-rolebinding <NAMESPACE>-agent-proxy-rolebinding <NAMESPACE>-cluster-role-binding-privileged kubectl delete <NAMESPACE>-psp-nkmo kubectl delete ns <NAMESPACE>
보안 컨텍스트 제약 조건이 이전에 생성된 경우:
kubectl delete scc telegraf-hostaccess
Kube-state-metrics 정보
NetApp Kubernetes Monitoring Operator가 자동으로 Kudbe-state-metrics를 설치하므로 사용자 개입이 필요하지 않습니다.
Kudbe-state-Metrics 카운터
다음 링크를 사용하여 이러한 kubbe 상태 메트릭 카운터에 대한 정보에 액세스할 수 있습니다.
== Configuring the Operator 새로운 버전의 연산자에서는 가장 일반적으로 수정된 설정을 _AgentConfiguration_custom 리소스에서 구성할 수 있습니다. 운용자를 배포하기 전에 _operator-config.YAML_file을 편집하여 이 리소스를 편집할 수 있습니다. 이 파일에는 일부 설정의 주석 처리된 예제가 포함되어 있습니다. 의 목록을 참조하십시오 link:telegraf_agent_k8s_config_options.html["사용 가능한 설정"] 를 참조하십시오.
다음 명령을 사용하여 연산자를 배포한 후에도 이 리소스를 편집할 수 있습니다.
kubectl -n netapp-monitoring edit AgentConfiguration 배포된 버전의 운영자가 AgentConfiguration을 지원하는지 확인하려면 다음 명령을 실행합니다.
kubectl get crd agentconfigurations.monitoring.netapp.com "서버에서 오류 발생(NotFound)" 메시지가 표시되는 경우 AgentConfiguration을 사용하려면 먼저 연산자를 업그레이드해야 합니다.
프록시 지원을 구성하는 중입니다
NetApp Kubernetes Monitoring Operator를 설치하기 위해 사용자 환경에서 프록시를 사용할 수 있는 두 가지 위치가 있습니다. 이러한 시스템은 동일하거나 별도의 프록시 시스템일 수 있습니다.
-
설치 코드 조각을 실행하는 동안("curl" 사용) 프록시가 있어야 스니펫이 실행되는 시스템을 Cloud Insights 환경에 연결할 수 있습니다
-
대상 Kubernetes 클러스터에서 Cloud Insights 환경과 통신하는 데 프록시가 필요합니다
이 중 하나 또는 둘 모두에 대해 프록시를 사용하는 경우 NetApp Kubernetes 운영 모니터를 설치하려면 먼저 프록시가 Cloud Insights 환경에 대한 올바른 통신을 허용하도록 구성되어 있는지 확인해야 합니다. 프록시가 있고 운영자를 설치하려는 서버/VM에서 Cloud Insights에 액세스할 수 있는 경우 프록시가 제대로 구성되었을 수 있습니다.
NetApp Kubernetes 운영 모니터를 설치하는 데 사용되는 프록시에 대해 Operator를 설치하기 전에 _http_proxy/https_proxy_environment 변수를 설정하십시오. 일부 프록시 환경에서는 _no_proxy 환경_변수를 설정해야 할 수도 있습니다.
변수를 설정하려면 * NetApp Kubernetes Monitoring Operator를 설치하기 전에 * 시스템에서 다음 단계를 수행하십시오.
-
현재 사용자에 대한 _https_proxy_and/or_http_proxy_environment 변수를 설정합니다.
-
설정 중인 프록시에 인증(사용자 이름/암호)이 없으면 다음 명령을 실행합니다.
export https_proxy=<proxy_server>:<proxy_port> .. 설정 중인 프록시에 인증(사용자 이름/암호)이 있는 경우 다음 명령을 실행합니다.
export http_proxy=<proxy_username>:<proxy_password>@<proxy_server>:<proxy_port>
-
Kubernetes 클러스터가 Cloud Insights 환경과 통신하는 데 사용되는 프록시의 경우 이러한 지침을 모두 읽은 후 NetApp Kubernetes 모니터링 운영자를 설치하십시오.
NetApp Kubernetes Monitoring Operator를 구축하기 전에 operator-config.yAML에서 AgentConfiguration의 프록시 섹션을 구성하십시오.
agent: ... proxy: server: <server for proxy> port: <port for proxy> username: <username for proxy> password: <password for proxy> # In the noproxy section, enter a comma-separated list of # IP addresses and/or resolvable hostnames that should bypass # the proxy noproxy: <comma separated list> isTelegrafProxyEnabled: true isFluentbitProxyEnabled: <true or false> # true if Events Log enabled isCollectorsProxyEnabled: <true or false> # true if Network Performance and Map enabled isAuProxyEnabled: <true or false> # true if AU enabled ... ...
사용자 지정 또는 프라이빗 Docker 저장소 사용
기본적으로 NetApp Kubernetes 모니터링 운영자는 Cloud Insights 저장소에서 컨테이너 이미지를 가져옵니다. 모니터링을 위한 타겟으로 사용되는 Kubernetes 클러스터가 있고 해당 클러스터가 사용자 지정 또는 프라이빗 Docker 저장소 또는 컨테이너 레지스트리에서만 컨테이너 이미지를 풀도록 구성된 경우 NetApp Kubernetes Monitoring Operator가 필요로 하는 컨테이너에 대한 액세스를 구성해야 합니다.
NetApp 모니터링 오퍼레이터 설치 타일에서 "이미지 풀 스니펫"을 실행합니다. 이 명령은 Cloud Insights 리포지토리에 로그인하고 오퍼레이터의 모든 이미지 종속성을 풀한 다음 Cloud Insights 리포지토리에서 로그아웃합니다. 메시지가 표시되면 제공된 리포지토리 임시 암호를 입력합니다. 이 명령은 옵션 기능을 포함하여 오퍼레이터가 사용하는 모든 이미지를 다운로드합니다. 이러한 이미지가 사용되는 기능은 아래를 참조하십시오.
핵심 운영자 기능 및 Kubernetes 모니터링
-
NetApp - 모니터링
-
kubbe-RBAC-proxy입니다
-
Kudbe-state-metrics를 나타냅니다
-
텔레그라프
-
distroless-root-user.(거리 없는 루트 사용자
이벤트 로그
-
유창한 비트
-
Kubernetes - 이벤트 - 수출자
네트워크 성능 및 맵
-
CI-NET-관찰자
회사 정책에 따라 운영 Docker 이미지를 프라이빗/로컬/엔터프라이즈 Docker 저장소로 밀어 넣습니다. 리포지토리에서 이러한 이미지에 대한 이미지 태그 및 디렉터리 경로가 Cloud Insights 리포지토리의 이미지 태그 및 디렉터리 경로와 일치하는지 확인합니다.
운영자 배포에서 모니터링 - 운영자 배포를 편집합니다. YAML을 편집하고 모든 이미지 참조를 수정하여 개인 Docker 저장소를 사용하십시오.
image: <docker repo of the enterprise/corp docker repo>/kube-rbac-proxy:<kube-rbac-proxy version> image: <docker repo of the enterprise/corp docker repo>/netapp-monitoring:<version>
operator-config.yAML에서 AgentConfiguration을 편집하여 새로운 Docker 저장소 위치를 반영하십시오. 개인 리포지토리에 대한 새 imagePullSecret을 만듭니다. 자세한 내용은 https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ 참조하십시오
agent: ... # An optional docker registry where you want docker images to be pulled from as compared to CI's docker registry # Please see documentation link here: https://docs.netapp.com/us-en/cloudinsights/task_config_telegraf_agent_k8s.html#using-a-custom-or-private-docker-repository dockerRepo: your.docker.repo/long/path/to/test # Optional: A docker image pull secret that maybe needed for your private docker registry dockerImagePullSecret: docker-secret-name
OpenShift 지침
OpenShift 4.6 이상에서 실행 중인 경우 _operator-config.yAML_에서 AgentConfiguration을 편집하여 _Privileged_setting을 활성화해야 합니다.
# Set runPrivileged to true SELinux is enabled on your kubernetes nodes runPrivileged: true
OpenShift는 일부 Kubernetes 구성 요소에 대한 액세스를 차단할 수 있는 수준 높은 보안을 구현할 수 있습니다.
'''
Kubernetes 체크섬 확인 중
Cloud Insights 에이전트 설치 프로그램은 무결성 검사를 수행하지만 일부 사용자는 다운로드한 아티팩트를 설치하거나 적용하기 전에 자체 검증을 수행하려고 할 수 있습니다. 기본 다운로드 및 설치 대신 다운로드 전용 작업을 수행하기 위해 이러한 사용자는 UI에서 가져온 에이전트 설치 명령을 편집하고 뒤에 오는 "설치" 옵션을 제거할 수 있습니다.
다음 단계를 수행하십시오.
-
지시에 따라 Agent Installer 스니펫을 복사합니다.
-
코드 조각을 명령 창에 붙여 넣는 대신 텍스트 편집기에 붙여 넣습니다.
-
명령에서 뒤에 오는 "--install"을 제거합니다.
-
텍스트 편집기에서 전체 명령을 복사합니다.
-
이제 명령 창(작업 디렉토리)에 붙여넣고 실행합니다.
-
다운로드 및 설치(기본값):
installerName=cloudinsights-kubernetes.sh … && sudo -E -H ./$installerName --download –-install ** 다운로드 전용:
installerName=cloudinsights-kubernetes.sh … && sudo -E -H ./$installerName --download
-
download-only 명령은 필요한 모든 아티팩트를 Cloud Insights에서 작업 디렉토리로 다운로드합니다. 아티팩트에는 다음이 포함되지만 이에 국한되지는 않습니다.
-
설치 스크립트
-
환경 파일입니다
-
YAML 파일
-
서명된 체크섬 파일(SHA256.signed)
-
서명 확인을 위한 PEM 파일(NetApp_cert.pem
육안 검사를 통해 설치 스크립트, 환경 파일 및 YAML 파일을 확인할 수 있습니다.
PEM 파일의 지문이 다음과 같은 것인지 확인하여 PEM 파일을 확인할 수 있습니다.
1A918038E8E127BB5C87A202DF173B97A05B4996 보다 구체적으로,
openssl x509 -fingerprint -sha1 -noout -inform pem -in netapp_cert.pem 서명된 체크섬 파일은 PEM 파일을 사용하여 확인할 수 있습니다.
openssl smime -verify -in sha256.signed -CAfile netapp_cert.pem -purpose any 모든 아티팩트가 만족스럽게 확인되면 다음을 실행하여 에이전트 설치를 시작할 수 있습니다.
sudo -E -H ./<installation_script_name> --install
문제 해결
NetApp Kubernetes Monitoring Operator 설정 시 문제가 발생할 경우 다음과 같은 사항을 고려해야 합니다.
문제: | 다음을 시도해 보십시오. |
---|---|
Kubernetes 영구 볼륨과 해당 백엔드 스토리지 장치 간의 하이퍼링크/연결이 표시되지 않습니다. 내 Kubernetes 영구 볼륨은 스토리지 서버의 호스트 이름을 사용하여 구성됩니다. |
기존 Telegraf 에이전트를 제거한 다음 최신 Telegraf 에이전트를 다시 설치하는 단계를 따릅니다. Telegraf 버전 2.0 이상을 사용해야 하며 Kubernetes 클러스터 스토리지를 Cloud Insights에서 능동적으로 모니터링해야 합니다. |
로그에 다음과 같은 메시지가 표시됩니다. |
이러한 메시지는 Kubernetes 버전이 1.20 미만인 경우 kube-state-metrics 버전 2.0.0 이상을 실행하는 경우에 발생할 수 있습니다. |
Telegraf에서 다음과 유사한 오류 메시지가 표시되지만 Telegraf가 시작되고 실행됩니다. |
이는 알려진 문제입니다. 을 참조하십시오 "이 GitHub 기사를 참조하십시오" 를 참조하십시오. Telegraf가 실행 중인 경우 사용자는 이러한 오류 메시지를 무시할 수 있습니다. |
Kubernetes에서 Telegraf POD가 다음 오류를 보고합니다. |
SELinux가 설정되어 있고 강제 적용되는 경우 Telegraf 포드가 Kubernetes 노드의 /proc/1/mountstats 파일에 액세스하지 못할 수 있습니다. 이 제한을 해결하려면 agentconfiguration을 편집하고 runPrivileged 설정을 활성화하십시오. 자세한 내용은 다음을 참조하십시오. https://docs.netapp.com/us-en/cloudinsights/task_config_telegraf_agent_k8s.html#openshift-instructions. |
Kubernetes에서 내 Telegraf ReplicaSet POD가 다음 오류를 보고합니다. |
Telegraf ReplicaSet POD는 마스터나 etcd로 지정된 노드에서 실행되도록 설계되었습니다. ReplicaSet 포드가 이러한 노드 중 하나에서 실행되고 있지 않으면 이러한 오류가 발생합니다. 마스터/etcd 노드에 문제가 있는지 확인합니다. 만약 그렇다면, 텔레그라프 ReplicaSet, 텔레그라프-RS에 필요한 내약성을 추가한다. |
PSP/PSA 환경이 있습니다. 이 문제가 모니터링 오퍼레이터에게 영향을 미칩니까? |
PSP(Pod Security Policy) 또는 PSA(Pod Security Admission)를 통해 Kubernetes 클러스터를 실행 중인 경우, 최신 NetApp Kubernetes Monitoring Operator로 업그레이드해야 합니다. 다음 단계에 따라 PSP/PSA를 지원하여 현재 NKMO로 업그레이드합니다. |
NKMO를 배포하는 데 문제가 발생했고 PSP/PSA를 사용하고 있습니다. |
다음 명령을 사용하여 에이전트를 편집합니다. |
grep -i psp (아무것도 발견되지 않았음을 보여줌) |
"ImagePullBackoff" 오류가 표시됩니다 |
이러한 오류는 사용자 지정 또는 프라이빗 Docker 저장소가 있고 NetApp Kubernetes Monitoring Operator가 이를 제대로 인식하도록 구성하지 않은 경우 나타날 수 있습니다. 자세히 보기 사용자 지정/개인 저장소 구성 정보 |
모니터링 운영자 구축에 문제가 있는데 현재 설명서를 참조해도 문제를 해결하는 데 도움이 되지 않습니다. |
다음 명령의 출력을 캡처하거나 기록해 두고 기술 지원 팀에 문의하십시오. kubectl -n netapp-monitoring get all kubectl -n netapp-monitoring describe all kubectl -n netapp-monitoring logs <monitoring-operator-pod> --all-containers=true kubectl -n netapp-monitoring logs <telegraf-pod> --all-containers=true |
NKMO 네임스페이스의 net-observer(워크로드 맵) 포드가 CrashLoopBackOff에 있습니다 |
이러한 포드는 네트워크 관찰 가능성을 위한 워크로드 맵 데이터 수집기에 해당합니다. 다음을 시도해 보십시오. |
NKMO 네임스페이스의 net-observer Pod는 OpenShift 4 환경의 CrashLoopBackoff에 있습니다 |
현재 지원되지 않습니다. 향후 업데이트에 지원이 추가될 예정입니다. |
Pod는 NKMO 네임스페이스(기본값: NetApp 모니터링)에서 실행되지만, 쿼리의 워크로드 맵 또는 Kubernetes 메트릭의 UI에는 데이터가 표시되지 않습니다 |
K8S 클러스터의 노드에서 시간 설정을 확인합니다. 정확한 감사 및 데이터 보고를 위해 NTP(Network Time Protocol) 또는 SNTP(Simple Network Time Protocol)를 사용하여 Agent 시스템의 시간을 동기화하는 것이 좋습니다. |
NKMO 네임스페이스의 일부 net-observer POD가 Pending 상태입니다 |
Net-observer는 DemonSet로, k8s 클러스터의 각 노드에서 포드를 실행합니다. |
NetApp Kubernetes 모니터링 운영자를 설치한 직후 로그에 다음이 표시됩니다. |
이 메시지는 일반적으로 새 오퍼레이터가 설치되어 있고 _Telegraf-RS_POD가 _KSM_POD가 가동되기 전에 작동 중일 때만 표시됩니다. 이러한 메시지는 모든 Pod가 실행되면 중지되어야 합니다. |
클러스터에 존재하는 Kubernetes CronJobs에 대해 어떤 메트릭도 수집되지 않습니다. |
Kubernetes 버전 확인(예 |
운용자 설치 후, Telegraf-ds Pod는 CrashLoopBackOff로 진입하고 POD 로그는 "su:Authentication failure"를 나타낸다. |
AgentConfiguration_에서 netapp-monitoring-configuration 섹션을 편집하고 _dockerMetricCollectionEnabled_를 false 로 설정합니다. 자세한 내용은 조작자를 참조하십시오 "구성 옵션". |
Telegraf 로그에 다음과 유사한 오류 메시지가 반복적으로 표시됩니다. |
추가 정보는 에서 찾을 수 있습니다 "지원" 페이지 또는 에 있습니다 "Data Collector 지원 매트릭스".