Kind에 StackRox Lab 생성

7712 단어

개요



이 문서는 Oficial Documentation을 기반으로 합니다. 아이디어는 실험실 목적으로 종류를 통해 프로비저닝된 여러 Kubernetes 클러스터로 로컬 환경을 만드는 것입니다.



Stackrox 플랫폼은 두 가지 구성 요소로 구성됩니다.
  • 중앙 서비스(중앙)
  • 보안 클러스터 서비스(클라이언트)

  • Kind를 사용하여 각각 프로비저닝하는 방법을 설명하겠습니다.

    중앙 서비스(중앙)



    전제 조건


  • 일종의 클러스터가 Stackrox 중앙 설치를 배포했습니다.
  • 클러스터에 사용 가능한 노드 포트가 있습니다. 예: 32444.
  • 컨테이너 이미지를 다운로드하려면 Red Hat 계정이 필요합니다.
  • 도메인 이름입니다. 예를 들어 stackrox.iplanet.site
  • 도메인 stackrox.iplanet.site(cert.crt 및 cert.key)에 대한 SSL 인증서 파일.

  • 단계



    Red Hat 계정의 사용자 이름과 비밀번호로 .env 파일을 생성합니다.

    cat << EOF >> ./env
    [email protected]
    RH_PASSWORD=supersecret
    EOF
    


    투구를 통해 설치

    export $(cat .env | xargs)
    helm repo add stackrox https://charts.stackrox.io
    helm repo update
    helm install -n stackrox stackrox-central-services \
      rhacs/central-services \
      --create-namespace \
      --set-file central.defaultTLS.cert=./cert.crt \
      --set-file central.defaultTLS.key=./cert.key \
      --set imagePullSecrets.username=$RH_USERNAME \
      --set imagePullSecrets.password=$RH_PASSWORD \
      --set central.exposure.nodePort.enabled=true \
      --set central.exposure.nodePort.port=32444
    


    [선택 과목]

    이 배포 구성을 저장하려면 다음 명령을 사용하여 generated-values.yaml 파일을 저장합니다.

    kubectl -n stackrox get secret \
      stackrox-generated-vmxhju -o \
      go-template='{{ index .data "generated-values.yaml" }}' | \
      base64 --decode > generated-values.yaml
    


    보안 클러스터 서비스(클러스터 클라이언트)



    전제 조건


  • Kind로 다른 클러스터를 생성합니다.
  • 중앙 서비스에서 "관리자 역할"로 토큰을 만듭니다.
  • Central에서 동일한 버전의 roxctl CLI를 다운로드합니다.

  • 단계



    토큰을 만들려면 다음 URL로 이동하십시오.

    https://$your_central_host:32444/main/integrations/authProviders/apitoken/create

    토큰 생성: (register.token로 저장)



    중앙 UI에서 CLI 다운로드



    Kubernetes 클라이언트에 배포할 구성 파일 생성

    export ROX_API_TOKEN="$(cat ./register.token)"
    export ROX_CENTRAL_ADDRESS=stackrox.iplanet.site:32444
    export CLUSTER_NAME=local-standard
    roxctl -e $ROX_CENTRAL_ADDRESS central \
      init-bundles generate cluster-init-$CLUSTER_NAME \
      --output cluster-init-bundle-$CLUSTER_NAME.yaml
    


    투구를 통해 설치

    helm repo add stackrox https://charts.stackrox.io
    helm repo update
    helm install -n stackrox \
      stackrox-secured-cluster-services \
      rhacs/secured-cluster-services \
      --create-namespace \
      --set clusterName=$CLUSTER_NAME \
      --set imagePullSecrets.username=$RH_USERNAME \
      --set imagePullSecrets.password=$RH_PASSWORD \
      --set centralEndpoint=$ROX_CENTRAL_ADDRESS \
      --set clusterLabels.env=local \
      --set collector.collectionMethod=NO_COLLECTION \
      -f cluster-init-bundle-$CLUSTER_NAME.yaml
    


    Because we are using kind cluster, the collectionMethod is set to NO_COLLECTION.



    [선택 과목]

    실험적 옵션KIND_EXPERIMENTAL_DOCKER_NETWORK으로 종류 클러스터를 프로비저닝한 경우 중앙 종류 네트워크와의 네트워크 통신을 허용해야 합니다.

    예를 들어, 중앙 클러스터의 도커 네트워크가 172.28.1.0/24 인 경우 설치된 종류 클러스터 간의 모든 통신을 허용하려면 이 명령을 실행합니다.

    sudo iptables -I FORWARD -s 172.28.1.0/24 -d 0/0 -j ACCEPT
    sudo iptables -I FORWARD -s 0/0 -d 172.28.1.0/24 -j ACCEPT
    


    설정 확인



    마지막으로 중앙에 두 개의 클러스터를 프로비저닝한 경우 "플랫폼 구성 > 클러스터"메뉴에 표시되어야 합니다.



    참조


  • https://github.com/stackrox/helm-charts/tree/main/3.69.1/central-services
  • https://github.com/stackrox/helm-charts/tree/main/3.69.1/secured-cluster-services
  • 좋은 웹페이지 즐겨찾기