Partilhar via


Configurar o Bridge to Kubernetes

Observação

Bridge to Kubernetes será aposentado em 30 de abril de 2025. Para obter detalhes sobre as alternativas de aposentadoria e código aberto, consulte a edição do do GitHub.

Você pode configurar o processo local do Bridge to Kubernetes usando dois métodos. Você pode anotar serviços em seu cluster e pode fornecer configuração local.

Configuração do Kubernetes

O arquivo de configuração do Kubernetes (kubeconfig) é armazenado por padrão em ~/.kube/config, mas você pode defini-lo usando a variável de ambiente KUBECONFIG.

Se você estiver usando o Visual Studio, poderá editar o perfil de inicialização do Bridge to Kubernetes no IDE usando a interface do usuário Debug launch profiles nas propriedades Debug. Consulte Editar perfil de inicialização.

Captura de tela mostrando a interface do usuário de perfis de inicialização de depuração.

A partir daí, você pode abrir a tela a seguir, que fornece uma maneira de editar algumas das propriedades de configuração mais comuns.

Captura de tela mostrando a edição de algumas das propriedades de perfil mais comuns do Bridge to Kubernetes.

Impedir que o Bridge para o Kubernetes encaminhe portas específicas

Configure o Bridge to Kubernetes para ignorar o mapeamento de portas específicas em um serviço Kubernetes para sua máquina adicionando a anotação bridgetokubernetes/ignore-ports no serviço.

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

Configuração local usando (KubernetesLocalProcessConfig.yaml)

O arquivo KubernetesLocalProcessConfig.yaml permite replicar variáveis de ambiente e arquivos montados disponíveis para seus pods no cluster. Você pode especificar as seguintes ações em um arquivo KubernetesLocalProcessConfig.yaml:

  • Baixe um volume e defina o caminho para esse volume como uma variável de ambiente.
  • Disponibilize um serviço em execução no cluster para processos em execução no computador de desenvolvimento.
  • Crie uma variável de ambiente com um valor constante.

Um arquivo KubernetesLocalProcessConfig.yaml padrão não é criado automaticamente, portanto, você deve criar manualmente o arquivo na raiz do seu projeto.

Descarregar um volume

Em env, especifique um nome e valor para cada volume que você deseja baixar. O nome é a variável de ambiente que será usada no computador de desenvolvimento. O valor é o nome do volume e um caminho no computador de desenvolvimento. O valor de assume a forma $(volumeMounts:VOLUME_NAME)/PATH/TO/FILES.

Por exemplo:

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

O exemplo acima baixa o volume allow-list do contêiner e define esse local mais o caminho para a variável de ambiente ALLOW_LIST_PATH. O comportamento padrão é baixar os arquivos para o caminho especificado em um diretório temporário no computador de desenvolvimento. No exemplo acima, ALLOW_LIST_PATH é definido como /TEMPORARY_DIR/allow-list.

Observação

O download de um volume fará o download de todo o conteúdo desse volume, independentemente do caminho definido. O caminho é usado apenas para definir a variável de ambiente para uso no computador de desenvolvimento. Adicionar /allow-list ou /path/to/files ao final do token não afeta onde o volume é persistido. A variável de ambiente é apenas uma conveniência caso seu aplicativo precise de uma referência a um arquivo específico dentro desse volume.

Você também tem a opção de especificar um local para baixar a montagem do volume em seu computador de desenvolvimento em vez de usar um diretório temporário. Em volumeMounts, especifique um nome de e localPath para cada local específico. O nome é o nome do volume que pretende igualar, e localPath é o caminho absoluto no seu computador de desenvolvimento. Por exemplo:

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-*)

O exemplo acima usa a entrada em env para baixar um volume correspondente ao default-token-*, como default-token-1111 ou default-token-1234-5678-90abcdef. Nos casos em que vários volumes correspondem, o primeiro volume correspondente é usado. Todos os ficheiros são descarregados para /var/run/secrets/kubernetes.io/serviceaccount no seu computador de desenvolvimento através da entrada em volumeMounts . A variável de ambiente KUBERNETES_IN_CLUSTER_CONFIG_OVERRIDE está definida como /var/run/secrets/kubernetes.io/serviceaccount.

Disponibilizar um serviço

Em env, especifique um nome e valor para cada serviço que você deseja disponibilizar no computador de desenvolvimento. O nome é a variável de ambiente que será usada no computador de desenvolvimento. O valor representa o nome do serviço do seu cluster e também um caminho. O valor para assume a forma de $(services:SERVICE_NAME)/PATH.

Por exemplo:

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

O exemplo acima torna o serviço de myapp1 disponível para seu computador de desenvolvimento e a variável de ambiente MYAPP1_SERVICE_HOST é definida como o endereço IP local do serviço de myapp1 com o caminho /api/v1 (ou seja, 127.1.1.4/api/v1). O serviço de myapp1 é acessível usando a variável de ambiente myapp1ou myapp1.svc.cluster.local.

Observação

Disponibilizar um serviço em seu computador de desenvolvimento tornará todo o serviço disponível, independentemente do caminho definido. O caminho é usado apenas para definir a variável de ambiente para uso no computador de desenvolvimento. Você também pode disponibilizar um serviço de um namespace Kubernetes específico usando $(services:SERVICE_NAME.NAMESPACE_NAME). Por exemplo:

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

O exemplo acima disponibiliza o myapp2 do mynamespace no seu computador de desenvolvimento e define a variável de ambiente MYAPP2_SERVICE_HOST para o endereço IP local do myapp2 do mynamespace.

Criar uma variável de ambiente com um valor constante

Em env, especifique um nome e valor para cada variável de ambiente que você deseja criar no computador de desenvolvimento. O nome é a variável de ambiente que será usada no computador de desenvolvimento e o valor é o valor. Por exemplo:

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

O exemplo acima cria uma variável de ambiente chamada DEBUG_MODE com um valor de true.

Adicionar uma dependência de serviço

Você pode especificar uma dependência de serviço, como um banco de dados ou cache, usando um campo de dependências genérico, semelhante a como os serviços são declarados. Especifique uma dependência aqui quando o serviço que você está depurando precisar se conectar a recursos que não estão em execução no cluster. Declare uma dependência como no exemplo a seguir:

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

Forneça o nome DNS do host (server-bridgetest13.database.windows.net no exemplo) e a porta (1433 no exemplo) para sua dependência.

Quando você especifica dependências, como bancos de dados, os modelos de autenticação de redirecionamento não funcionam. Por exemplo, para o Banco de Dados SQL do Azure, você deve definir a política de conexão como "Proxy" (em vez de "Redirecionar" ou "Padrão").

Exemplo KubernetesLocalProcessConfig.yaml

Aqui está um exemplo de um arquivo KubernetesLocalProcessConfig.yaml completo:

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"

Próximos passos

Para começar a usar o Bridge to Kubernetes para se conectar ao seu computador de desenvolvimento local ao cluster, consulte Usar o Bridge to Kubernetes com o Visual Studio Code e Usar o Bridge to Kubernetes com o Visual Studio.