다음을 통해 공유


Bridge to Kubernetes 구성

메모

Bridge to Kubernetes는 2025년 4월 30일에 사용 중지됩니다. 사용 중지 및 오픈 소스 대안에 대한 자세한 내용은 GitHub문제를 참조하세요.

두 가지 방법을 사용하여 로컬 Bridge to Kubernetes 프로세스를 구성할 수 있습니다. 클러스터에서 서비스에 주석을 달 수 있으며 로컬 구성을 제공할 수 있습니다.

Kubernetes 구성

Kubernetes 구성(kubeconfig) 파일은 기본적으로 ~/.kube/config저장되지만 KUBECONFIG 환경 변수를 사용하여 설정할 수 있습니다.

Visual Studio를 사용하는 경우 디버그 속성의 디버그 시작 프로필 UI를 사용하여 IDE에서 Bridge to Kubernetes 시작 프로필을 편집할 수 있습니다. 을 참조하여 시작 프로필을 편집하세요.

디버그 시작 프로필 UI를 보여 주는 스크린샷

여기에서 가장 일반적인 구성 속성 중 일부를 편집하는 방법을 제공하는 다음 화면을 열 수 있습니다.

가장 일반적인 Bridge to Kubernetes 프로필 속성 중 일부를 편집하는 방법을 보여 주는 스크린샷

Bridge to Kubernetes가 특정 포트를 전달하지 못하도록 방지

서비스에 bridgetokubernetes/ignore-ports 주석을 추가하여 Kubernetes 서비스의 특정 포트를 컴퓨터에 매핑하지 않도록 Bridge to Kubernetes를 구성합니다.

apiVersion: v1
kind: Service
metadata:
  annotations:
    bridgetokubernetes/ignore-ports:445,23

로컬 구성 사용(KubernetesLocalProcessConfig.yaml)

KubernetesLocalProcessConfig.yaml 파일을 사용하면 클러스터의 Pod에 사용할 수 있는 환경 변수 및 탑재된 파일을 복제할 수 있습니다. KubernetesLocalProcessConfig.yaml 파일에서 다음 작업을 지정할 수 있습니다.

  • 볼륨을 다운로드하고 해당 볼륨의 경로를 환경 변수로 설정합니다.
  • 클러스터에서 실행되는 서비스를 개발 컴퓨터에서 실행되는 프로세스에서 사용할 수 있도록 합니다.
  • 상수 값을 사용하여 환경 변수를 만듭니다.

기본 KubernetesLocalProcessConfig.yaml 파일이 자동으로 만들어지지 않으므로 프로젝트의 루트에 파일을 수동으로 만들어야 합니다.

볼륨을 다운로드

env따라 다운로드하려는 각 볼륨에 대해 이름 지정합니다. 이름 개발 컴퓨터에서 사용할 환경 변수입니다. 은 개발 컴퓨터의 볼륨 이름과 경로입니다. 값은 형식의 $(volumeMounts:VOLUME_NAME)/PATH/TO/FILES를 사용합니다.

예를 들어:

version: 0.1
env:
  - name: ALLOW_LIST_PATH
    value: $(volumeMounts:allow-list)/allow-list

위의 예제에서는 컨테이너에서 허용 목록 볼륨을 다운로드하고 해당 위치와 환경 변수 ALLOW_LIST_PATH경로를 설정합니다. 기본 동작은 개발 컴퓨터의 임시 디렉터리에서 지정한 경로에 파일을 다운로드하는 것입니다. 위의 예제에서 ALLOW_LIST_PATH/TEMPORARY_DIR/allow-list로 설정되어 있다.

메모

볼륨을 다운로드하면 설정한 경로에 관계없이 해당 볼륨의 전체 콘텐츠가 다운로드됩니다. 경로는 개발 컴퓨터에서 사용할 환경 변수를 설정하는 데만 사용됩니다. 토큰의 끝에 /allow-list 또는 /path/to/files 추가하는 것은 실제로 볼륨이 유지되는 위치에 영향을 주지 않습니다. 환경 변수는 앱이 해당 볼륨 내의 특정 파일에 대한 참조가 필요한 경우에 편리합니다.

임시 디렉터리를 사용하는 대신 개발 컴퓨터에서 볼륨 탑재를 다운로드할 위치를 지정하는 옵션도 있습니다. volumeMounts아래에서 각 위치에 대해 이름localPath를 지정하십시오. 이름 은 일치시킬 볼륨 이름이며, localPath 는 개발 컴퓨터의 절대 경로입니다. 예를 들어:

version: 0.1
volumeMounts:
  - name: default-token-*
    localPath: /var/run/secrets/kubernetes.io/serviceaccount
env:
  - name: KUBERNETES_IN_CLUSTER_CONFIG_OVERRIDE
    value: $(volumeMounts:default-token-*)

위의 예제에서는 env 항목을 사용하여 default-token-*패턴에 일치하는 볼륨을 다운로드합니다. 예를 들면, default-token-1111 또는 default-token-1234-5678-90abcdef과 같습니다. 여러 볼륨이 일치하는 경우 일치하는 첫 번째 볼륨이 사용됩니다. 모든 파일은 /var/run/secrets/kubernetes.io/serviceaccount항목을 사용하여 개발 컴퓨터의 에 다운로드됩니다. KUBERNETES_IN_CLUSTER_CONFIG_OVERRIDE 환경 변수는 /var/run/secrets/kubernetes.io/serviceaccount.

서비스를 사용할 수 있도록 만들기

env아래에서 개발 컴퓨터에서 사용할 수 있도록 하려는 각 서비스에 대해 이름 지정합니다. 이름 개발 컴퓨터에서 사용할 환경 변수입니다. 은 클러스터의 서비스 이름이자 경로입니다. 값에 대한 값은 형식으로 $(services:SERVICE_NAME)/PATH을 사용합니다.

예를 들어:

version: 0.1
env:
  - name: MYAPP1_SERVICE_HOST
    value: $(services:myapp1)/api/v1/

위의 예제에서는 개발 컴퓨터에서 myapp1 서비스를 사용할 수 있도록 하고 MYAPP1_SERVICE_HOST 환경 변수는 경로(즉, /api/v1)를 사용하여 127.1.1.4/api/v1 서비스의 로컬 IP 주소로 설정됩니다. myapp1 서비스는 myapp1 또는 myapp1.svc.cluster.local 환경 변수를 사용하여 액세스할 수 있습니다.

메모

개발 컴퓨터에서 서비스를 사용할 수 있게 하면 설정한 경로에 관계없이 전체 서비스를 사용할 수 있습니다. 경로는 개발 컴퓨터에서 사용할 환경 변수를 설정하는 데만 사용됩니다. $(services:SERVICE_NAME.NAMESPACE_NAME) 를 사용하여 특정 Kubernetes 네임스페이스에서 서비스를 사용할 수 있도록 할 수도 있습니다.. 예를 들어:

version: 0.1
env:
  - name: MYAPP2_SERVICE_HOST
    value: $(services:myapp2.mynamespace)

위의 예제에서는 개발 컴퓨터에서 사용할 수 있는 mynamespace 네임스페이스의 myapp2 만들고 MYAPP2_SERVICE_HOST 환경 변수를 mynamespace 네임스페이스의 myapp2 로컬 IP 주소로 설정합니다.

상수 값을 사용하여 환경 변수 만들기

env아래에서 개발 컴퓨터에서 만들려는 각 환경 변수에 대한 이름 지정합니다. 이름은 개발 컴퓨터에서 사용될 환경 변수이고, 는 그 변수의 값입니다. 예를 들어:

version: 0.1
env:
  - name: DEBUG_MODE
    value: "true"

위의 예제는 DEBUG_MODE라는 환경 변수를 생성하며, 그 값은 true입니다.

서비스 종속성 추가

서비스가 선언되는 방식과 유사한 제네릭 종속성 필드를 사용하여 데이터베이스 또는 캐시와 같은 서비스 종속성을 지정할 수 있습니다. 디버깅하는 서비스가 클러스터에서 실행되고 있지 않은 리소스에 연결해야 하는 경우 여기에 종속성을 지정합니다. 다음 예제와 같이 종속성을 선언합니다.

version: 0.1
volumeMounts:
env:
  - name: DB_HOST
    value: $(externalendpoints:server-bridgetest123.database.windows.net:1433)

종속성에 대한 호스트 DNS 이름(예제의server-bridgetest13.database.windows.net) 및 포트(예제의 경우 1433)를 제공합니다.

데이터베이스와 같은 종속성을 지정하면 리디렉션 인증 모델이 작동하지 않습니다. 예를 들어 Azure SQL Database의 경우 연결 정책을 "리디렉션" 또는 "기본값"이 아닌 "프록시"로 설정해야 합니다.

KubernetesLocalProcessConfig.yaml 예제

다음은 전체 KubernetesLocalProcessConfig.yaml 파일의 예입니다.

version: 0.1
volumeMounts:
  - name: default-token-*
    localPath: /var/run/secrets/kubernetes.io/serviceaccount
env:
  - name: KUBERNETES_IN_CLUSTER_CONFIG_OVERRIDE
    value: $(volumeMounts:default-token-*)
  - name: ALLOW_LIST_PATH
    value: $(volumeMounts:allow-list)/allow-list
  - name: MYAPP1_SERVICE_HOST
    value: $(services:myapp1)/api/v1/
  - name: MYAPP2_SERVICE_HOST
    value: $(services:myapp2.mynamespace)
  - name: DEBUG_MODE 
    value: "true"

다음 단계

Bridge to Kubernetes를 시작하여 로컬 개발 컴퓨터를 클러스터에 연결하려면 Visual Studio Code와 함께 Bridge to Kubernetes 사용 및 Visual Studio에서 Bridge to Kubernetes 사용 를 참조하세요.