프록시 서버를 사용하도록 Schematics 에이전트 구성하기

많은 환경에서는 공용 인터넷에 대한 직접 연결을 허용하지 않지만 연결이 보안 프록시 게이트웨이에 의해 라우팅되어야 합니다. Schematics 에이전트 구성 정책은 인터넷에 대한 직접 액세스가 허용되지 않는 프록시 서버의 사용을 허용합니다. HTTP 또는 HTTPS 프록시를 사용할 수 있습니다.

프록시 구성은 클러스터의 각 호스트에서 동일해야 합니다. 따라서 프록시를 설정하거나 수정할 때는 배포, ConfigMap, 및 NetworkPolicy YAML 사양 파일을 업데이트해야 합니다. 그런 다음 배치를 다시 시작하여 프록시 서버 구성을 적용하십시오.

시작하기 전에

프록시 서버 액세스를 구성하기 전에 다음 요구사항이 있는지 확인하십시오. 다음 예제에서는 포트 3128에서 squid 프록시를 사용합니다.

  • HTTP 또는 HTTPS 사용하여 Google 접속할 수 있고 클러스터에서 액세스할 수 있는 프록시 서버.
  • 프록시 서버 IP 주소 및 포트 (예: http://53.25.191.193:3128 )
  • curl 명령행 도구는 클러스터 팟 (Pod) 에서 사용 가능합니다.

프록시 서버 구성

  1. Kubernetes 클러스터 콘솔에서. Kubernetes 대시보드를 클릭하세요

  2. 네임스페이스 선택 드롭 다운 상자에서 schematics-runtime 으로 전환하십시오.

  3. Config and Storage 섹션 아래에서 구성 맵 을 클릭하여 schematics-runtime 네임스페이스에 대한 맵을 표시하십시오.

    • schematics-runtime-job-config configmap 리소스를 클릭하고 연필 아이콘을 선택하여 HTTPS/HTTP 프록시 명령문을 추가하도록 YAML 파일을 편집하십시오.

    • 파일의 하단 섹션에 있는 data 특성 아래에 HTTPS/HTTP 프록시 항목을 추가하십시오.

      data:
        HTTPS_PROXY: http://<ipaddress>:<port>
        HTTP_PROXY: http://<ipaddress>:<port>
      
    • 업데이트를 클릭하여 configmap을 저장하고 새 프록시 항목이 파일 목록에 표시되는지 확인하십시오.

    • schematics-runtime-ansible-job-config configmap 자원에 대해 반복하십시오.

  4. Cluster 섹션 아래에서 네트워크 정책 을 클릭하여 schematics-runtime 네임스페이스에 대한 정책을 표시하십시오.

    • whitelist-runtime-egress-gen-ports NetworkPolicy 파일을 편집하여 HTTPS/HTTP 프록시에서 사용하는 포트를 추가하십시오.
    • HTTPS/HTTP 프록시 포트를 포트 특성에 추가하십시오.
      - ports:
        - protocol: TCP
          port: 3128
      
  5. schematics-runtime 배치를 다시 시작하고 모든 팟 (Pod) 이 실행 중인지 확인하십시오.

    • Workloads 섹션 아래에서 배치 를 클릭하여 schematics-runtime 네임스페이스의 현재 배치를 표시하십시오.
    • runtime-job 리소스를 선택하고 팟 (Pod) 을 다시 시작하십시오.
    • runtime-ansible-job 리소스를 선택하고 팟 (Pod) 을 다시 시작하십시오.

프록시 서버 액세스 확인

클러스터 팟 (Pod) 이 프록시 서버를 통해 인터넷에 액세스할 수 있는지 확인하십시오.

  • schematics-runtime 팟 (Pod) 에 로그인하고 다음 curl 명령을 실행하여 프록시 환경 변수가 컨테이너에 올바르게 설정되어 있는지 확인하십시오.

  • Workloads > Pods 에서 첫 번째 job-runtime 및 Exec 를 선택하십시오.

    curl --head https://www.google.com
    

프록시가 HTTPS 에 대해 작동 중인 경우 curl 명령은 200 OK HTTP response 를 리턴합니다.

curl 명령이 연결에 실패하면 클러스터에서 프록시에 액세스할 수 있고 대상 웹 사이트로 액세스를 라우팅할 수 있는지 확인하십시오. 다음 curl 명령을 프록시 옵션과 함께 사용하여 프록시에 액세스할 수 있는지 유효성을 검증하십시오.

```curl {: codeblock}
curl --proxy http://<ipaddress>:<port> --head https://www.google.com
```

프록시 매개변수를 사용하여 웹 사이트에 액세스할 수 없는 경우 클러스터에 대한 네트워크 송신 규칙이 올바르게 설정되어 있고 프록시에 대한 네트워크 액세스가 있는지 확인하십시오.

프록시 매개변수를 사용하여 웹 사이트에 액세스할 수 있는 경우 env 명령을 실행하여 configmap이 올바르게 업데이트되고 HTTPS/HTTP 프록시 환경 변수가 설정되었는지 확인하십시오.

환경 변수 HTTP_PROXY 및 HTTPS_PROXY 가 출력에 나열되어야 합니다. 나열되지 않은 경우 configmap 정의를 다시 확인하십시오.