마스터 및 노드 에이전트 설치
다음과 같이 마스터 및 노드 에이전트 설치 과정을 안내합니다. 설치 안내 화면과 동일한 과정입니다.
EKS Fargate는 지원 예정입니다.
사전 환경 점검 및 설정
사용자의 쿠버네티스 환경에 따라 사전 환경 설정이 필요할 수 있습니다. Istio, GKE, OpenShift 환경에 해당하지 않을 경우 다음 단계로 넘어가세요.
- Istio 환경
- GKE 환경
- OpenShift 환경
Istio 환경일 경우 다음 명령을 실행해 와탭 수집서버와 통신하는 자원인 ServiceEntry를 생성하세요.
kubectl create namespace whatap-monitoring
kubectl label namespace whatap-monitoring istio-injection=enabled
kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: whatap-external
spec:
hosts:
- whatap-proxy1
- whatap-proxy2
addresses:
- 13.124.11.223
- 13.209.172.35
ports:
- name: proxy
number: 6600
protocol: tcp
location: MESH_EXTERNAL
EOF
Google Kubernetes Engine(GKE)의 경우 사용자 클러스터 생성 후 권한 설정을 위해 다음 명령을 실행하세요.
ACCOUNT=$(gcloud info --format='value(config.account)')
kubectl create clusterrolebinding owner-cluster-admin-binding \
--clusterrole cluster-admin \
--user $ACCOUNT
gcloud 명령 설치에 대한 자세한 내용은 구글 클라우드 문서를 참조하세요.
설치 안내 화면에서 OpenShift 환경일 경우 추가 설정 섹션을 열어 whatap_openshift_scc.yaml 버튼을 선택하세요. 파일을 다운로드 후 다음 명령을 실행하세요.
oc create -f whatap_openshift_scc.yaml
쿠버네티스 에이전트 생성
와탭 쿠버네티스 에이전트 설치 시 helm 차트 기준 안내와 yaml 파일 기준 안내를 다음과 같이 제공합니다.
- Helm Chart
- YAML
Helm 버전 확인 및 와탭 리포지토리 네트워크 연결 상태 확인
-
다음 명령어를 통해 helm 버전을 확인하세요. 3.x 버전 이상을 지원합니다.
helm version
# version.BuildInfo{Version:"v3.x", GitCommit:"xxx", GitTreeState:"clean", GoVersion:"go1.20.8"} -
와탭 Helm 리포지토리에 대한 네트워크 연결 상태를 확인하세요.
curl https://whatap.github.io/helm/ping
# pong
Helm Chart 기준 설치
와탭 Helm 리포지토리 추가 후 사용자의 Container Runtime에 맞는 기본 설정 파일을 생성해 에이전트를 설치하세요.
-
다음 명령어를 실행해 와탭 Helm 리포지토리를 추가하세요.
helm repo add whatap https://whatap.github.io/helm/
helm repo update -
다음 명령어를 실행해 사용자 CONTAINER-RUNTIME을 확인하세요.
kubectl get nodes -o wide
-
CONTAINER-RUNTIME 확인 후 설치에 필요한 기본 설정 파일(values.yaml)을 다음과 같이 생성하세요.
containerRuntime: #CONTAINER-RUNTIME
whatap:
license: #WHATAP-LICENESE-KEY
host: "13.124.11.223/13.209.172.35"
port: "6600" -
다음과 같이 에이전트 애플리케이션을 설치하세요.
-
에이전트를 처음 설치하는 사용자는 다음 명령어를 실행해 에이전트 애플리케이션을 설치하세요.
helm install whatap-kube-agent whatap/kube -f values.yaml
-
기존 와탭 쿠버네티스 에이전트 사용자는 다음 명령어를 실행해 에이전트 애플리케이션을 설치하세요.
kubectl delete ns whatap-monitoring
kubectl delete clusterrole whatap
kubectl delete clusterrolebinding whatap
helm install whatap-kube-agent whatap/kube -f values.yaml
노트기존 yaml 파일 방식으로 와탭 쿠버네티스 에이전트를 설치한 경우 Clean Install이 필요합니다. 기존 쿠버네티스 에이전트 삭제 후 helm 차트를 통한 설치가 가능합니다.
-
values.yaml 주요 설정 항목
와탭 쿠버네티스 에이전트 설정을 수정하기 위해서는 기본 설정 파일(values.yaml)을 수정해야 합니다. values.yaml 파일 내 주요 설정 항목을 다음과 같이 안내합니다.
키 | 타입 | 기본값 | 설명 |
---|---|---|---|
whatap.license | String | # <license-key> | Whatap 라이센스 키 |
whatap.host | String | # <whatap-server-host> | Whatap 서버의 호스트 주소 |
whatap.port | Int | # <whatap-server-port> | Whatap 포트 번호 |
containerRuntime | String | "docker" | 사용 중인 컨테이너 런타임. "docker" , "containerd" , "crio" 중 선택 |
daemonSet.name | String | whatap-node-agent | DaemonSet의 이름 |
daemonSet.label | String | whatap-node-agent | DaemonSet에 지정할 라벨 |
daemonSet.initContainers.nodeDebugger.enabled | Bool | true | Whatap 노드 디버거 컨테이너 활성화 여부 |
daemonSet.containers.nodeHelper.image | String | whatap/kube_mon | nodeHelper 컨테이너의 이미지 |
daemonSet.containers.nodeHelper.requests.memory | String | 100Mi | nodeHelper MEMORY request |
daemonSet.containers.nodeHelper.requests.cpu | String | 100m | nodeHelper CPU request |
daemonSet.containers.nodeHelper.limits.memory | String | 350Mi | nodeHelper MEMORY limit |
daemonSet.containers.nodeHelper.limits.cpu | String | 200m | nodeHelper CPU limit |
daemonSet.containers.nodeAgent.image | String | whatap/kube_mon | nodeAgent 컨테이너의 이미지 |
daemonSet.containers.nodeAgent.requests.memory | String | 300Mi | nodeAgent MEMORY request |
daemonSet.containers.nodeAgent.requests.cpu | String | 100m | nodeAgent CPU request |
daemonSet.containers.nodeAgent.limits.memory | String | 350Mi | nodeAgent MEMORY limit |
daemonSet.containers.nodeAgent.limits.cpu | String | 200m | nodeAgent CPU limit |
deployment.name | String | whatap-master-agent | Deployment의 이름 |
deployment.label | String | whatap-master-agent | Deployment에 지정할 라벨 |
deployment.replicas | Int | 1 | Deployment의 replica 수 |
deployment.containers.controlPlaneHelper.enabled | Boolean | true | whatap-control-plane-helper 컨테이너를 활성화 여부 |
deployment.containers.controlPlaneHelper.image | String | "whatap/kube_mon" | controlPlaneHelper 컨테이너의 이미지 |
deployment.containers.controlPlaneHelper.port | String | 9496 | controlPlaneHelper 컨테이너의 포트 번호입니다 |
deployment.containers.controlPlaneHelper.resources.requests.memory | String | "300Mi" | controlPlaneHelper 컨테이너 MEMORY request |
deployment.containers.controlPlaneHelper.resources.requests.cpu | String | "100m" | controlPlaneHelper 컨테이너 CPU request |
deployment.containers.controlPlaneHelper.resources.limits.memory | String | "350Mi" | controlPlaneHelper 컨테이너 MEMORY limit |
deployment.containers.controlPlaneHelper.resources.limits.cpu | String | "200m" | controlPlaneHelper 컨테이너 CPU limit |
deployment.containers.masterAgent.name | String | whatap-master-agent | masterAgent 컨테이너 이름 |
deployment.containers.masterAgent.image | String | "whatap/kube_mon" | masterAgent 컨테이너 이미지 |
deployment.containers.masterAgent.port | Int | 6600 | masterAgent 컨테이너 포트 번호 |
deployment.containers.masterAgent.resources.requests.memory | String | "300Mi" | masterAgent 컨테이너 MEMORY request |
deployment.containers.masterAgent.resources.requests.cpu | String | "100m" | masterAgent 컨테이너 CPU request |
deployment.containers.masterAgent.resources.limits.memory | String | "350Mi" | masterAgent 컨테이너 MEMORY limit |
deployment.containers.masterAgent.resources.limits.cpu | String | "200m" | masterAgent 컨테이너 CPU request |
Helm 차트 기준 설치 문제 해결에 대한 안내는 다음 문서를 참조하세요.
YAML 파일 기준 설치
사용자의 쿠버네티스 버전과 Container Runtime에 맞는 YAML 파일을 다운로드해 에이전트를 생성하세요.
-
다음 명령어를 실행해 VERSION과 CONTAINER-RUNTIME을 확인하세요.
kubectl get node -o wide
-
에이전트 설치 화면에서 VERSION과 CONTAINER-RUNTIME에 맞는 YAML 파일을 선택하고 다운로드 버튼을 클릭하세요.
-
다운로드한 YAML 파일을 마스터 노드에 업로드하세요.
-
에이전트를 생성하기 위해 다음 명령어를 실행하세요.
# {whatap_kube_X.YZ.yaml} 파일명을 다운로드한 파일명과 일치하도록 수정하세요.
kubectl apply -f {whatap_kube_X.YZ.yaml} -
다음과 같이 에이전트를 정상적으로 생성(create)한 것을 확인하세요.
마스터 에이전트가 사용하는 자원량은 사용자 환경의 노드 수에 어느 정도 비례합니다. 즉 클러스터 내에 노드 수가 많을 경우 기본값으로 설정된 메모리 Limit(350MB) 이상의 자원을 사용해 OOM(Out Of Memory)이 발생할 수 있습니다. 마스터 에이전트에 할당된 메모리 Limit 수치는 에이전트 설치 YAML 파일을 통해 변경할 수 있습니다.
쿠버네티스 에이전트 설치 확인
쿠버네티스 에이전트 설치가 정상적으로 완료되었을 경우 다음 명령어를 실행해 마스터 에이전트와 노드 에이전트의 상태를 확인할 수 있습니다.
kubectl get pod -n whatap-monitoring
Running 상태인 경우
다음과 같이 STATUS 항목이 Running인 경우 설치를 완료한 상태입니다. 마스터 및 노드 에이전트의 설치를 완료하면 쿠버네티스 환경의 자원 모니터링을 시작합니다. 와탭 모니터링 서비스로 이동한 다음 프로젝트 목록과 대시보드 > 컨테이너 맵 메뉴에서 성능 정보를 수집하는 것을 확인하세요.
Running 상태가 아닌 경우
다음과 같이 STATUS 항목이 Running이 아닌 경우 설치가 제대로 이루어지지 않은 상태입니다.
-
마스터 노드에서 다음 명령어를 실행해 Pod 생성의 실패 원인을 파악하세요.
kubectl describe pod {POD_NAME} -n whatap-monitoring
-
실행 결과 하단에 Events: 항목을 확인하세요.
kubectl
명령어 사용 시 -n {네임스페이스}
옵션을 사용하면 특정 네임스페이스를 대상으로 작업을 수행합니다. 와탭 에이전트는 기본적으로 whatap-monitoring
이라는 네임스페이스에 설치되므로 -n whatap-monitoring
이라는 옵션을 추가합니다.