Kubernetes 에 에이전트 설치

Kubernetes 클러스터의 온라인 또는 오프라인(에어갭) 환경에 Instana 에이전트를 설치할 수 있습니다. 다음 목록을 참조하여 필수 조건을 확인하고, 사용 가능한 모든 설치 방법을 알아보며, Kubernetes 에 에이전트를 설치하십시오.

전제조건

호스트 에이전트를 설치하기 전에 필수 조건이 충족되었는지 확인하십시오.

참고: Instana 에이전트 운영자가 필요로 하고 설치하는 RBAC 권한을 확인하려면 ‘필수 RBAC’을 참조하십시오.

에이전트 설치 방법 선택

호스트 에이전트는 패키지 관리자인 Kubernetes ( Helm )을 사용하거나 오퍼레이터를 통해 설치할 수 있습니다. 두 설치 옵션 모두 오프라인(에어갭) 및 온라인 환경에서 사용할 수 있습니다:

호스트가 자체 호스팅 에이전트 저장소와 통신할 수 있는 오프라인(에어갭) 환경의 경우:

Helm 차트의 모든 사용 가능한 구성 옵션에 대해서는 ‘구성 참조’를 참조하십시오. 이러한 구성 옵션은 운영자 CRD에도 동일한 방식으로 적용됩니다.

에어갭 환경에 에이전트 설치

두 가지 방법을 사용하여 에어 갭이 있는 환경에 에이전트를 설치할 수 있습니다:

에어갭 환경에서 Helm 차트를 사용하여 설치하기

에어 갭이 있는 환경에 에이전트를 설치하려면 다음 단계를 완료하세요:

참고: 다음 설치 단계에서는 CentOS Linux 배포판을 사용하지만, 이 단계들은 지원되는 다른 모든 배포판에도 적용됩니다.
  1. 다음 명령을 실행하여 Docker 설치합니다:

    sudo yum install -y yum-utils
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    sudo systemctl start docker
  2. 다음 명령을 실행하여 Helm 설치합니다:

    sudo su
    yum install -y epel-release
    yum install -y snapd
    systemctl enable --now snapd.socket
    ln -s /var/lib/snapd/snap /snap
    snap install helm --classic
    PATH="$PATH:/snap/bin/"
    helm version
  3. 다음 단계를 완료하여 미니큐브를 설치합니다:

    참고: 이 단계들은 대상 환경을 보여주기 위한 예시입니다.
    1. Kubernetes 리포지토리를 추가합니다:

      cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
      [kubernetes]
      name=Kubernetes
      baseurl=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/
      enabled=1
      gpgcheck=1
      gpgkey=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/repodata/repomd.xml.key
      exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
      EOF
    2. kubectl 명령줄 도구를 설치합니다:

      sudo yum install -y kubectl
    3. 미니큐브 RPM 패키지를 다운로드하세요:

      curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-latest.x86_64.rpm
    4. 미니큐브 RPM 패키지를 설치합니다:

      sudo rpm -Uvh minikube-latest.x86_64.rpm
    5. Docker 사용하여 Kubernetes 클러스터를 시작합니다:

      minikube start --force --driver=docker
    6. 미니큐브와 함께 사용할 수 있도록 Docker 환경을 설정합니다:

      eval $(minikube docker-env)
    7. Kubernetes 클러스터를 확인합니다:

      kubectl cluster-info
  4. 에어 갭 환경으로 전송하기 위해 필요한 Docker 이미지를 가져옵니다:

    1. 에이전트 키를 사용하여 Instana Container Registry 에 로그인하세요:

      docker login https://containers.instana.io/v2 -u _ -p <agentKey>
    2. Instana ( Container Registry )에서 에이전트의 최신 버전을 다운로드하세요:

      docker pull containers.instana.io/instana/release/agent/static:latest
    3. 최신 Instana 에이전트 운영자 이미지를 가져옵니다:

      docker pull icr.io/instana/instana-agent-operator:latest
    4. Instana ( Kubernetes ) 센서의 최신 버전을 가져옵니다:

      docker pull icr.io/instana/k8sensor:latest
    5. Docker 레지스트리에서 로그아웃합니다:

      docker logout
    6. Docker 이미지를 ' .tar ' 파일로 변환합니다:

      docker images
      docker tag <instanaAgentImageID> instana/agent
      docker save instana/agent > instana-agent.tar
      docker tag <operatorImagerId> instana/instana-agent-operator
      docker save instana/instana-agent-operator > instana-agent-operator.tar
      docker tag <k8SensorID> instana/k8sensor
      docker save instana/k8sensor > instana-k8sensor.tar
    7. 에이전트를 설치하려는 에어갭 호스트에 (instana-agent.tar, instana-agent-operator.tar, 및 instana-k8sensor.tar) 파일을 복사하십시오.

    8. 에어 갭 호스트에서 현재 이미지를 삭제합니다:

      docker rmi -f <instanaAgentImageID> <operatorImagerId> <k8SensorID>
    9. 파일(instana-agent.tar, instana-agent-operator.tar, .tarinstana-k8sensor.tar)에서 이미지를 불러오기:

    docker load --input instana-agent.tar
    docker load --input instana-agent-operator.tar
    docker load --input instana-k8sensor.tar
  5. Docker 레지스트리 서버를 실행하고 이미지를 푸시합니다:

    docker run -d -p 5000:5000 --restart=always --name registry registry:2
    docker tag instana/agent:latest localhost:5000/instana-agent
    docker push localhost:5000/instana-agent
    docker tag instana/instana-agent-operator:latest localhost:5000/instana-agent-operator
    docker push localhost:5000/instana-agent-operator
    docker tag instana/k8sensor:latest localhost:5000/instana-k8sensor
    docker push localhost:5000/instana-k8sensor
    #Delete all images related to the agent:
    docker rmi -f <instanaAgentImageID> <k8SensorID> <operatorImagerId>
  6. 다음 저장소에서 Instana Helm 차트를 가져옵니다:

    helm pull instana-agent --repo https://agents.instana.io/helm --untar instana-agent
    참고: 현재 디렉터리에서 최신 Instana 에이전트 Helm 차트 파일을 확인하십시오.
  7. Kubernetes 클러스터에 Instana 에이전트를 배포합니다.

    참고: Instana 에이전트 Helm 차트 버전 2.0.0 및 그 이전 버전에는 해당 instana-agent/crds 폴더가 없습니다. 따라서 해당 kubectl apply -f instana-agent/crds 단계는 필요하지 않습니다.
    kubectl apply -f instana-agent/crds && helm upgrade --install --create-namespace \
       --namespace instana-agent \
       --set agent.key=<agentKey> \
       --set agent.endpointHost=ingress-red-saas.instana.io \
       --set agent.endpointPort=443 \
       --set cluster.name='mip-back-test' \
       --set zone.name='mip-gke-zone' \
       --set k8s_sensor.deployment.enabled=true \
       --set k8s_sensor.image.name=localhost:5000/instana-k8sensor \
       --set k8s_sensor.image.tag=latest \
       --set k8s_sensor.image.pullPolicy=IfNotPresent  \
       --set agent.image.name=localhost:5000/instana-agent \
       --set agent.image.tag=latest \
       --set agent.image.pullPolicy=IfNotPresent  \
       --set controllerManager.image.name=localhost:5000/instana-agent-operator \
       --set controllerManager.image.tag=latest \
       instana-agent instana-agent/

    <agentKey> 를 입력하고, <agent.endpointHost>, <agent.endpointPort>, <k8_senosr.image.name>, < agent.image.name > 를 수정하십시오. 또한, 디렉토리에 있는 최신 Instana 에이전트 Helm 차트 파일로 를 instana-agent-1.2.61.tgz 대체하십시오.

  8. 다음 명령어로 파드를 확인합니다:

    kubectl get all -n instana-agent

에이전트가 설치되었습니다. 다음 단계에 대한 자세한 내용은 ‘다음 단계’ 섹션을 참조하십시오.

에어갭 환경에서 운영자가 직접 설치하십시오

containers.instana.io완전한 에어갭 환경에서는 클러스터 노드가 또는 에서 icr.io 이미지를 직접 가져올 수 없습니다. 인터넷에 접속할 수 있는 점프 호스트(바스티온)를 사용하여 필요한 모든 이미지를 클러스터에서 액세스할 수 있는 사설 레지스트리로 복사하십시오. 그런 다음, 미러링된 이미지에서 오퍼레이터를 배포합니다.

이 섹션의 단계에서는 IBM Cloud Container Registry (ICR) 의 비공개 네임스페이스를 대상 레지스트리로 사용합니다. 점프 호스트와 대상 클러스터에서 접근 가능한 OCI 호환 레지스트리라면 어떤 것이든 동일하게 잘 작동합니다. 예를 들면 JFrog Artifactory, Red Hat Quay, Harbor 또는 자체 호스팅 배포 레지스트리 등이 있습니다. ICR 이외의 레지스트리를 사용하는 경우, ICR 관련 단계는 건너뛰고, 문서에 icr.io 나타나는 모든 ‘ URL ’ 및 인증 자격 증명 부분을 해당 레지스트리의 정보로 대체하십시오.

전체적인 흐름은 다음과 같습니다:
[internet] ──pull──▶ jump host ──push──▶ <private-registry>/instana-airgap-mirror ◀──pull── K8s cluster
                      (skopeo)

scripts/mirror-instana-images.sh 스크립트는 한 번의 호출로 세 구성 요소 모두를 미러링합니다:

표 1. 구성 요소 및 원본 이미지
컴포넌트 소스 이미지
연산자 icr.io/instana/instana-agent-operator:latest
에이전트 (정적) containers.instana.io/instana/release/agent/static:latest
Kubernetes 센서 icr.io/instana/k8sensor:latest
참고: 이 스크립트는 정적 에이전트 이미지를 복사합니다. 자동으로 에이전트 이미지를 동적으로 업데이트하려면 동적 에이전트 이미지를 사용하십시오.
참고: OpenShift, 와 달리, 일반 Kubernetes 에는 해당 명령어가 없습니다 oc secrets link . kubectl patch.을 사용하여 관련 서비스 계정에 직접 패치함으로써 imagePullSecrets 비밀 정보를 연결합니다.

에어 갭 방식 운영자 설치의 전제 조건

계속 진행하기 전에 점프 호스트 에 다음 도구를 설치하십시오:

표 2. 점프 호스트에 필요한 도구
도구 용도 설치 안내서
skopeo Docker 데몬 없이 레지스트리 간에 컨테이너 이미지 복사하기 dnf install skopeobrew install skopeo
jq 다음에서 반환된 이미지 메타데이터 JSON 를 분석합니다. skopeo inspect dnf install jqbrew install jq
kubectl Kubernetes CLI Kubernetes 문서를 참조하세요
ibmcloud CLI + Container Registry 플러그인 ICR 네임스페이스 생성 및 인증 ibmcloud plugin install container-registry
참고: ICR을 대상 레지스트리로 사용할 때만 CLI가 ibmcloud 필요합니다. Artifactory, Quay, Harbor 등 다른 레지스트리를 사용하고 있다면 이 단계를 건너뛰세요.
필요한 도구가 준비되어 있는지 확인하십시오:
skopeo --version
jq --version
kubectl version --client

설치

에어갭 환경에서 오퍼레이터를 사용하여 에이전트를 설치하려면 다음 단계를 수행하십시오:

  1. 개인 레지스트리를 준비하고, skopeo를 해당 레지스트리에 인증하십시오.
    참고: ICR을 사용하는 경우, 다음 단계를 수행하십시오. 다른 레지스트리( Artifactory, Quay, Harbor 또는 Distribution)를 사용하는 경우, 이에 상응하는 대상 저장소를 생성하고, 해당 레지스트리의 인증 정보를 사용하여 skopeo에 인증한 다음, 2단계로 진행하십시오.
    1. IBM Cloud 에 로그인하여 미러링된 이미지를 위한 전용 네임스페이스를 생성합니다:
      ibmcloud login --sso
      ibmcloud cr region-set global
      ibmcloud cr namespace-add instana-airgap-mirror
    2. 비상호작용형 레지스트리 액세스를 위해 전용 IAM API 키를 생성합니다:
      ibmcloud iam api-key-create instana-mirror-key -d "skopeo mirror key"
    3. 터미널에 키를 출력하지 않고 내보낸 다음, 로그인이 정상적으로 작동하는지 확인합니다:
      read -rs ICR_API_KEY
      skopeo login --username iamapikey --password "$ICR_API_KEY" icr.io
      skopeo login참고: 이전에 ibmcloud cr login 다른 프로그램이 skopeo가 덮어쓸 수 없는 필드에 ~/.docker/config.json 값을 identitytoken 기록한 경우, 해당 파일을 열어 해당 icr.io 항목을 삭제한 후 저장하고 다시 시도하십시오.
  2. Instana 에이전트 다운로드 키를 받으세요.

    containers.instana.io정적 에이전트 이미지는 계속 유지되며, 이를 사용하려면 에이전트 다운로드 키가 필요합니다. Instana UI의 [설정 ] → [에이전트] → [에이전트 설치]에서 다운로드하거나, Instana 계정 담당팀에 문의하십시오. 출력하지 않고 저장하려면:
    read -rs INSTANA_AGENT_DOWNLOAD_KEY
  3. 점프 호스트에서 미러 스크립트를 실행하여 이미지를 사설 레지스트리에 미러링하십시오. 이 스크립트는 각 이미지의 현재 :latest 버전을 확인하고, 기존 :latest 태그와 버전 지정된 태그를 모두 대상 위치로 복사한 다음, 확인된 모든 좌표가 포함된 속성 파일을 작성합니다.
    ./scripts/mirror-instana-images.sh \
      --registry      icr.io \
      --namespace     instana-airgap-mirror \
      --dest-creds    "iamapikey:$ICR_API_KEY" \
      --dest-tls-verify true \
      --agent-download-key "$INSTANA_AGENT_DOWNLOAD_KEY"

    이 스크립트는 미러링 과정에서 파악된 정확한 이미지 좌표가 포함된 파일을 mirror-instana-images.properties 생성합니다. 예를 들어,

    operator_version=2.2.14
    operator_destination=icr.io/instana-airgap-mirror/instana-agent-operator
    agent_version=1.320.3
    agent_destination=icr.io/instana-airgap-mirror/agent
    k8sensor_version=1.4.16
    k8sensor_destination=icr.io/instana-airgap-mirror/k8sensor
    참고: 이 파일을 배포 매니페스트 파일과 함께 저장하십시오. 나중에 이 이미지에 포함된 좌표 정보를 사용하여 사용자 정의 리소스를 InstanaAgent 구성하게 됩니다.
  4. 세 개의 리포지토리 모두 레지스트리에 존재하며, 예상된 태그가 지정되어 있는지 확인하십시오. ICR의 경우 다음 명령을 실행하십시오:
    ibmcloud cr images --restrict instana-airgap-mirror
  5. 대상 네임스페이스와 풀 시크릿을 생성합니다:
    kubectl create namespace instana-agent
    
    kubectl create secret docker-registry icr-pull-secret \
      --docker-server=icr.io \
      --docker-username=iamapikey \
      --docker-password="$ICR_API_KEY" \
      -n instana-agent
  6. 최신 릴리스 매니페스트를 다운로드하고, 업스트림 오퍼레이터 이미지 참조를 미러링된 이미지로 대체하십시오:
    curl -fsSL \
      https://github.com/instana/instana-agent-operator/releases/latest/download/instana-agent-operator.yaml \
      -o instana-agent-operator.yaml
    
    sed 's|image: icr.io/instana/instana-agent-operator:|image: icr.io/instana-airgap-mirror/instana-agent-operator:|g' \
      instana-agent-operator.yaml > instana-agent-operator-mirrored.yaml
    참고: 이 단계에서는 연산자 이미지 줄만 교체합니다. 후속 단계에서 에이전트 및 k8sensor 이미지를 참조하는 사용자 정의 리소스를 InstanaAgent 별도로 구성하게 됩니다.
  7. 수정된 매니페스트를 적용하고 배포가 완료될 때까지 기다리십시오:
    kubectl apply -f instana-agent-operator-mirrored.yaml
    kubectl rollout status deployment/instana-agent-controller-manager \
      -n instana-agent --timeout=120s
  8. 풀 시크릿을 오퍼레이터 서비스 계정에 적용하십시오. 일반 Kubernetes 에서는 이에 상응하는 기능이 없으므로 oc secrets link , 서비스 계정에 직접 패치를 imagePullSecrets 적용해야 합니다. 패치가 적용되기 전에 포드가 특정 상태로 전환되는 ErrImagePull 것을 방지하려면 매니페스트를 적용한 직후에 이 단계를 완료하십시오.
    kubectl patch serviceaccount instana-agent-operator -n instana-agent \
      -p '{"imagePullSecrets": [{"name": "icr-pull-secret"}]}'
    ErrImagePull오퍼레이터 포드가 이미 실행 중이라면, 서비스 계정을 수정한 다음 오류가 발생한 포드를 삭제하여 다시 스케줄링되도록 하십시오:
    kubectl delete pod -n instana-agent -l app.kubernetes.io/name=instana-agent-operator
  9. 에이전트 서비스 계정을 미리 생성하고, 각 계정에 풀 시크릿을 적용하십시오. 사용자가 사용자 정의 리소스를 InstanaAgent 처음 적용하면 운영자가 와 instana-agent-k8sensor 를 생성합니다 instana-agent . 사용자 정의 리소스를 적용하기 전에 이를 미리 생성하고 시크릿을 업데이트해 두면, 첫 번째 파드 스케줄링 시 발생하는 ErrImagePull 오류를 방지할 수 있습니다.
    kubectl create serviceaccount instana-agent -n instana-agent
    kubectl create serviceaccount instana-agent-k8sensor -n instana-agent
    
    kubectl patch serviceaccount instana-agent -n instana-agent \
      -p '{"imagePullSecrets": [{"name": "icr-pull-secret"}]}'
    kubectl patch serviceaccount instana-agent-k8sensor -n instana-agent \
      -p '{"imagePullSecrets": [{"name": "icr-pull-secret"}]}'
    ErrImagePull참고: 이미 사용자 정의 리소스를 적용했고 포드가 실행 중인 경우, 앞서 언급한 두 kubectl patch serviceaccount 가지 명령어를 실행한 다음 오류가 발생한 포드를 삭제하여 재스케줄링되도록 하십시오.
  10. 사용자 정의 리소스 매니페스트를 InstanaAgent 생성합니다. 자리 표시자 값을 실제 구성 값으로 대체하십시오:
    • 바꾸다 <INSTANA_AGENT_KEY> 그리고 <INSTANA_AGENT_DOWNLOAD_KEY> Instana UI 에이전트 및 컬렉터 → 에이전트 설치 → Kubernetes Operator 에서 키를 가져옵니다.
    • mirror-instana-images.properties이미지 태그를 에서 제공하는 버전으로 대체하십시오.
    • 사용 중인 환경에 맞게 프록시 필드를 업데이트하십시오.
    • 클러스터가 Instana 백엔드와 직접 연결되어 있는 경우 해당 proxy* 필드를 생략하십시오.
    • 프록시 인증이 필요하지 않은 경우 와 proxyPassword 를 빈 문자열로 설정하십시오 proxyUser .
    apiVersion: instana.io/v1
    kind: InstanaAgent
    metadata:
      name: instana-agent
      namespace: instana-agent
    spec:
      zone:
        name: <your_zone_name>
      cluster:
        name: <your_cluster_name>
      agent:
        key: <INSTANA_AGENT_KEY>
        downloadKey: <INSTANA_AGENT_DOWNLOAD_KEY>
        endpointHost: <your-ingress-endpoint>
        endpointPort: "443"
        proxyHost: <proxy-host>
        proxyPort: "3128"
        proxyProtocol: http
        proxyUser: ""
        proxyPassword: ""
        image:
          name: icr.io/instana-airgap-mirror/agent
          tag: "<agent_version>"       # value of agent_version in mirror-instana-images.properties
        env: {}
        configuration_yaml: |
          # You can leave this empty, or use this to configure your Instana agent.
          # See https://docs.instana.io/setup_and_manage/host_agent/on/kubernetes/
      k8s_sensor:
        image:
          name: icr.io/instana-airgap-mirror/k8sensor
          tag: "<k8sensor_version>"    # value of k8sensor_version in mirror-instana-images.properties
    참고: 이전 단계에서 서비스 계정에 패치를 icr-pull-secret 적용하여 이미지 가져오기 자격 증명을 제공했기 때문에, 사용자 정의 리소스에는 필수 필드가 없습니다 pullSecrets .
  11. 사용자 정의 리소스를 적용합니다:
    kubectl apply -f instana-agent-cr.yaml
  12. 해당 instana-agent 네임스페이스의 파드를 나열하여 배포 상태를 확인하십시오:
    kubectl get pods -n instana-agent

    배포가 완료되면, 노드당 1개의 instana-agent-controller-manager instana-agentDaemonSet 포드가 있고, 총 3개의 instana-agent-k8sensor 포드가 모두 상태에 Running 있는 것을 확인할 수 있습니다. 에이전트가 구성된 프록시를 통해 백엔드 연결을 설정하면, 클러스터가 Instana UI의 구성된 영역 및 클러스터 이름 아래에 표시됩니다.

에이전트가 설치되었습니다. 다음 단계에 대한 자세한 내용은 ‘다음 단계’ 섹션을 참조하십시오.

온라인 환경에 에이전트 설치

Kubernetes 클러스터에 Instana 에이전트를 설치하려면 다음 방법을 사용하는 것이 좋습니다:

에이전트를 다시 설치하는 경우에는 에이전트의 모든 클러스터 수준 개체를 삭제하는 등 에이전트가 깨끗하게 제거되었는지 확인하세요. 자세한 내용은 Kubernetes 에서 Instana 에이전트 제거를 참조하세요.

Operator 및 Helm 차트의 새 버전이 꽤 자주 출시됩니다. 수정 사항, 개선 사항 및 새로운 기능에 대한 최신 업데이트를 확인하려면 Operator 또는 Helm 차트의 최신 버전을 실행 중인지 확인하십시오.

Operator 또는 Helm 차트의 최신 버전을 확인하려면 다음 항목을 참조하십시오:

운영자를 사용하여 설치하십시오

Instana 에서 제공하는 ` Kubernetes ` 연산자를 사용하여 에이전트를 설치할 수 있습니다. 다음 단계를 따르십시오.

  1. Instana UI의 홈 페이지에서 ‘에이전트 및 수집기’를 클릭합니다. ‘ Instana ’의 ‘에이전트’ 탭에서 ‘에이전트 설치’를 선택합니다.

  2. 에이전트 배포 카탈로그 페이지에서 Kubernetes - 운영자 타일을 클릭합니다.

  3. 다음과 같이 오퍼레이터를 배포하십시오. 이 명령은 최신 오퍼레이터를 설치합니다.

    kubectl apply -f https://github.com/instana/instana-agent-operator/releases/latest/download/instana-agent-operator.yaml

    이 명령을 실행하면 운영자가 네임스페이스에서 정상적으로 instana-agent 작동하며, 사용자 정의 instana-agent 리소스가 생성되기를 대기합니다.

    DockerHub 및 Red Hat 레지스트리에 있는 Instana 에이전트 Operator 이미지의 태그는 latest 지원되지 않습니다.

    Instana Agent Operator의 새 버전을 사용하려면, 앞서 언급한 대로 Operator의 GitHub 릴리스 페이지에서 최신 Operator( YAML )로 업데이트하십시오.

  4. 클러스터 이름과 클러스터에 포함할 상담원 영역(선택 사항)을 입력합니다.

    클러스터 이름(<your_cluster_name>)은 이 데몬 세트에서 모니터링하는 클러스터의 사용자 지정 이름입니다.

    에이전트 영역(<your_zone_name>)은 인프라 지도에 표시되는 영역 그룹을 사용자 정의하는 데 사용됩니다.

  5. Instana UI에 제공된 YAML 템플릿을 복사하여 사용자 지정 리소스 YAML 파일을 생성합니다.

    YAML 템플릿에는 에이전트 키, 호스트 에이전트 엔드포인트, 클러스터 이름 및 에이전트 영역이 미리 입력되어 있습니다.

  6. YAML 사용자 정의 리소스 파일을 편집합니다:

    • Instana 에이전트 사용자 정의 리소스는 Instana Helm 차트와 완전히 동일한 구성을 지원합니다. 모든 구성 매개변수의 상세 목록과 예제는 Instana 의 ‘ Helm ’ 차트를 참조하십시오.

      다음 항목도 참조하십시오:

    • 자체 호스팅 환경에 에이전트를 설치하려는 경우, 에이전트 키에 Instana 공개 아티팩터리에서 파일을 다운로드할 권한이 없다면 다운로드 키를 다음과 같이 downloadKey: <your_download_key>추가하십시오. 다음 예를 참조하십시오.

      agent:
        key: wPYpH7EGK0ucLaO0Nu7BYw
        downloadKey: m007YDoWNload6kE42yukg
        endpointHost: ...
    • 에이전트 엔드포인트에 TLS 암호화를 적용하려면 기존 시크릿을 사용하거나 인증서와 개인 키를 사용하십시오:

      • 기존 비밀 사용

        TLS 암호화를 위해 kubernetes.io/tls 해당 유형의 기존 시크릿을 사용할 수 있습니다. 하지만 사용자 정의 리소스인 ` YAML ` 파일에 반드시 다음 agent.tls.secretName 내용을 포함해야 합니다.

      • 인증서 및 개인 키 사용

        인증서와 개인 키는 base64-encoded 합니다. 이 변형을 사용하려면 사용자 정의 리소스 YAML 파일에 다음 매개변수를 추가하십시오:

        • agent.tls.certificate
        • agent.tls.key
        참고: 가 설정된 agent.tls.secretName 경우, 와 agent.tls.keyagent.tls.certificate 무시됩니다.
    • 정적 호스트 에이전트를 배포하려면, 사용자 정의 리소스 파일( YAML )을 정적 에이전트 이미지로 구성하십시오. 정적 호스트 에이전트 이미지를 나열하려면 ' agent.image.name '을 ' containers.instana.io/instana/release/agent/static'로 설정합니다. 다음 예를 참조하십시오.

      spec:
         agent:
           image:
             name: containers.instana.io/instana/release/agent/static
    • 선택 사항: 다음 값을 대체할 수 있습니다:

      • agent.env: 상담원의 프록시 구성 등 상담원의 환경 변수를 지정하려면 이 필드를 사용합니다. 가능한 더 많은 환경 값은 상담원 구성을 참조하세요. 다음 예를 참조하십시오.

        spec:
            agent:
              env:
               INSTANA_AGENT_TAGS: staging
      • agent.configuration_yaml: 이 필드를 사용하여 상담원 구성 파일을 지정합니다 ' configuration.yaml. 다음 예를 참조하십시오.

        spec:
            agent:
              configuration_yaml: |
                # Example of configuration yaml template
                # Host
                com.instana.plugin.host:
                  tags:
                    - 'dev'
                    - 'app1'

        자세한 내용은 “에이전트 구성 파일을 사용하여 호스트 에이전트 구성”을 참조하십시오.

    • 선택 사항: 파일을 instana-agent.customresource.yaml 수동으로 편집하여 컨트롤러 매니저 포드에 허용 오차를 추가할 수 있습니다. 사용 가능한 구성 옵션에 대한 자세한 내용은 Canonical 구성 파일을 참조하십시오.
    • 선택 사항: 에이전트가 프로세스별 또는 네임스페이스별로 애플리케이션을 탐지하고 모니터링하는 방식을 사용자 지정하려면 ‘선택적 모니터링’을 참조하십시오.
  7. YAML 사용자 정의 리소스 파일을 적용합니다:

    kubectl apply -f instana-agent.customresource.yaml

    여기에는 사용자 정의 리소스 YAMLinstana-agent.customresource.yaml 파일의 이름이 들어갑니다.

    운영자는 사용자 정의 리소스인 ` YAML ` 파일에서 구성을 가져와 ` Instana ` 에이전트를 배포합니다.

에이전트가 설치되었습니다. 다음 단계에 대한 자세한 내용은 ‘다음 단계’ 섹션을 참조하십시오.

상담원을 업데이트하려면 상담원 설치 업데이트하기를 참조하세요.

Helm 차트를 사용하여 설치하십시오

Helm 차트를 사용하여 에이전트를 설치할 수 있습니다. ‘ Helm ’ 차트는 DaemonSet 를 사용하여 클러스터 내 워크로드를 스케줄링하는 데 활용될 수 있는 모든 워커 노드에 ‘ Instana ’ 에이전트를 추가합니다.

Helm 차트를 사용하여 Instana 에이전트를 설치하려면, 먼저 로컬 helm CLI를 버전 3으로 설치하거나 업그레이드해야 합니다.

Instana 에이전트의 Helm 차트는 Red Hat OpenShift 4.x 을 지원합니다.

Helm 차트를 사용하여 에이전트를 설치하려면 다음 단계를 완료하세요:

  1. Instana UI의 홈 페이지에서 ‘에이전트 및 수집기’를 클릭합니다. ‘ Instana ’의 ‘에이전트’ 탭에서 ‘에이전트 설치’를 선택합니다.

  2. 에이전트 배포 카탈로그 페이지에서 Kubernetes - Helm 차트 타일을 클릭합니다.

  3. 클러스터 이름과 (선택 사항으로) 클러스터에 포함할 상담원 영역을 입력합니다.

    클러스터 이름(<your_cluster_name>)은 이 데몬 세트에서 모니터링하는 클러스터의 사용자 지정 이름입니다.

    에이전트 영역(<your_zone_name>)은 인프라 지도에 표시되는 영역 그룹을 사용자 정의하는 데 사용됩니다.

    에이전트 배포 코드는 사용자가 제공한 값으로 업데이트됩니다. 다른 모든 필수 매개 변수는 다음 예제와 같이 에이전트 배포 코드에 미리 입력되어 있습니다:

    helm install instana-agent
    --repo https://agents.instana.io/helm \
    --namespace instana-agent \
    --create-namespace \
    --set agent.key='<your_agent_key>' \
    --set agent.endpointHost='<your_host_agent_endpoint>' \
    --set agent.endpointPort=443 \
    --set cluster.name='<your_cluster_name>' \
    --set zone.name='<your_zone_name>' \
    instana-agent

    또는 values.yaml 파일을 로컬에 저장한 다음, 필수 입력란을 직접 입력해 주세요. 그런 후 다음 명령을 실행하십시오.

    helm install instana-agent
    --repo https://agents.instana.io/helm \
    --namespace instana-agent \
    --create-namespace \
    -f values.yaml
    instana-agent
  4. 상담원 배포 코드를 편집합니다:

    • 설정을 구성하려면 --set 플래그를 사용하여 명령줄에서 값을 지정하거나, -f 플래그를 사용하여 값이 포함된 YAML 파일을 제공할 수 있습니다. 모든 구성 매개변수의 상세 목록과 예제는 Instana 의 ‘ Helm ’ 차트를 참조하십시오. 또한 다음 항목도 참조하십시오:

    • 정적 호스트 에이전트를 배포하려면 플래그 ' --set agent.image.name=containers.instana.io/instana/release/agent/static'을 설정합니다.

    • 에이전트 엔드포인트에 대한 TLS 암호화를 설정하려면 기존 시크릿을 사용하거나 인증서와 개인 키를 사용하십시오:

      • ' kubernetes.io/tls' 유형의 기존 비밀번호 사용

        TLS 암호화를 위해 kubernetes.io/tls 해당 유형의 기존 시크릿을 사용할 수 있습니다. 하지만 설치 시 ' secretName '을 ' --set 'agent.tls.secretName=<YOUR_SECRET_NAME>' '로 지정해야 합니다. 그러면 제공된 시크릿의 파일이 에이전트에 포함됩니다.

      • 인증서 및 개인 키 사용

        인증서와 개인 키는 base64-encoded 합니다. 이 변형을 사용하려면 다음 추가 매개변수와 함께 ' helm install '을 실행하세요:

        --set 'agent.tls.certificate=<YOUR_CERTIFICATE_BASE64_ENCODED>'
        --set 'agent.tls.key=<YOUR_PRIVATE_KEY_BASE64_ENCODED>'
        참고: 가 설정된 agent.tls.secretName 경우, 와 agent.tls.keyagent.tls.certificate 무시됩니다.
    • Kubernetes 환경에서 Helm 저장소에 액세스할 때와 Instana 백엔드에 연결할 때 서로 다른 프록시가 필요한 경우, 설치 과정에서 별도의 프록시 설정을 구성할 수 있습니다. 구성 옵션에 대한 자세한 내용은 ‘리포지토리용 프록시 ’ 및 ‘ Instana 백엔드’를 참조하십시오.

    • 선택 사항: 에이전트가 프로세스별 또는 네임스페이스별로 애플리케이션을 탐지하고 모니터링하는 방식을 사용자 지정하려면 ‘선택적 모니터링’을 참조하십시오.
  5. 에이전트 배포 코드를 복사한 다음 실행합니다.

에이전트가 설치되었습니다. 다음 단계에 대한 자세한 내용은 ‘다음 단계’ 섹션을 참조하십시오.

상담원을 업데이트하려면 상담원 설치 업데이트하기를 참조하세요.