Consulte os exemplos para personalizar a API do Tanzu Kubernetes Grid Service v1alpha2 com definições de configuração globais para a interface de rede do contêiner, o servidor proxy e os certificados TLS.

Configurando o Tanzu Kubernetes Grid Service usando a API v1alpha2

Você pode personalizar o Tanzu Kubernetes Grid Service alterando o CNI padrão, adicionando um servidor proxy global e adicionando certificados confiáveis. Consulte o Parâmetros de configuração para a API do Tanzu Kubernetes Grid Service v1alpha1.
apiVersion: run.tanzu.vmware.com/v1alpha2
kind: TkgServiceConfiguration
metadata:
  name: tkg-service-v2-configuration-example
spec:
  defaultCNI: antrea
  proxy:
    #supported format is `http://<user>:<pwd>@<ip>:<port>`
    httpProxy: http://admin:[email protected]:80
    httpsProxy: http://admin:[email protected]:80
    noProxy: [10.246.0.0/16,192.168.144.0/20,192.168.128.0/20]
  trust: 
    additionalTrustedCAs:
      - name: CompanyInternalCA-1
        data: LS0tLS1C...LS0tCg==
        #where "..." is the middle section of the long base64 string
      - name: CompanyInternalCA-2
        data: MTLtMT1C...MT0tPg==        
  defaultNodeDrainTimeout: 0
Cuidado: A edição da especificação do Tanzu Kubernetes Grid Service resulta em alterações globais em todos os clusters provisionados por esse serviço, incluindo novos clusters e clusters existentes que são atualizados manual ou automaticamente.

Pré-requisito: Configurar a edição do Kubectl

Para dimensionar um cluster do Tanzu Kubernetes, você atualiza o manifesto do cluster usando o comando kubectl edit tanzukubernetescluster/CLUSTER-NAME. O comando kubectl edit abre o manifesto do cluster no editor de texto definido pela variável de ambiente KUBE_EDITOR ou EDITOR. Para obter instruções sobre como configurar a variável de ambiente, consulte Especificar um editor de texto padrão para o Kubectl.

Quando você salva as alterações de especificação, o kubectl relata que as edições foram registradas com êxito. Para cancelar, basta fechar o editor sem salvar.

Configurar o CNI padrão

O Tanzu Kubernetes Grid Service fornece uma interface de rede de contêiner (CNI) padrão para clusters Tanzu Kubernetes. A configuração padrão permite criar clusters sem a necessidade de especificar o CNI. Você pode alterar o CNI padrão editando a especificação do serviço.

O Tanzu Kubernetes Grid Service oferece suporte a dois CNIs: Antrea e Calico, com Antrea sendo o padrão. Para obter mais informações, consulte Tanzu Kubernetes Rede de Cluster.

Você pode substituir o CNI padrão especificando explicitamente o CNI a ser usado. Como alternativa, você pode alterar o CNI padrão editando o controlador de serviço TKG para CNIs.
  1. Autentique-se com o Supervisor Cluster.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. Alterne o contexto para o vSphere Namespace de destino.
    kubectl config use-context tkgs-cluster-ns
  3. Liste o CNI padrão.
    kubectl get tkgserviceconfigurations
    Resultado de exemplo:
    NAME                                 DEFAULT CNI
    tkg-service-configuration            antrea
    
  4. Carregue para editar a especificação de Tanzu Kubernetes Grid Service.
    kubectl edit tkgserviceconfigurations tkg-service-configuration

    O sistema abre a especificação tkg-service-configuration no editor de texto padrão definido pela variável de ambiente KUBE_EDITOR ou EDITOR.

  5. Edite o valor de spec.defaultCNI.
    Por exemplo, altere de:
    spec:
      defaultCNI: antrea
    Alterar para:
    spec:
      defaultCNI: calico
  6. Para aplicar as alterações, salve o arquivo no editor de texto. Para cancelar, feche o editor sem salvar.

    Quando você salva a alteração no editor de texto, o kubectl atualiza a especificação de serviço do tkg-service-configuration.

  7. Verifique se o CNI padrão está atualizado.
    kubectl get tkgserviceconfigurations
    O CNI padrão é atualizado. Qualquer cluster provisionado com configurações de rede padrão usa o CNI padrão.
    NAME                                 DEFAULT CNI
    tkg-service-configuration            calico
    

Configurar um servidor proxy global

Para habilitar um servidor proxy global, adicione os parâmetros do servidor proxy ao TkgServiceConfiguration. Para obter uma descrição dos campos obrigatórios, consulte Parâmetros de configuração para a API do Tanzu Kubernetes Grid Service v1alpha1.
  1. Autentique-se com o Supervisor Cluster.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. Alterne o contexto para o vSphere Namespace de destino.
    kubectl config use-context tkgs-cluster-ns
  3. Obtenha a configuração atual.
    kubectl get tkgserviceconfigurations
    Resultado de exemplo:
    NAME                        DEFAULT CNI
    tkg-service-configuration   antrea
  4. Carregue para editar a especificação de Tanzu Kubernetes Grid Service.
    kubectl edit tkgserviceconfigurations tkg-service-configuration

    O sistema abre a especificação tkg-service-configuration no editor de texto padrão definido pela variável de ambiente KUBE_EDITOR ou EDITOR.

  5. Adicione a subseção spec.proxy com cada campo obrigatório, incluindo httpProxy, httpsProxy e noProxy.
    apiVersion: run.tanzu.vmware.com/v1alpha1
    kind: TkgServiceConfiguration
    metadata:
      ...
      name: tkg-service-configuration-example
      resourceVersion: "44170525"
      selfLink: /apis/run.tanzu.vmware.com/v1alpha1/tkgserviceconfigurations/tkg-service-configuration
      uid: 10347195-5f0f-490e-8ae1-a758a724c0bc
    spec:
      defaultCNI: antrea
      proxy:
        httpProxy: http://<user>:<pwd>@<ip>:<port>
        httpsProxy: http://<user>:<pwd>@<ip>:<port>
        noProxy: [SVC-POD-CIDRs, SVC-EGRESS-CIDRs, SVC-INGRESS-CIDRs]
  6. Preencha cada campo de proxy com os valores apropriados. Para obter uma descrição de cada campo, consulte Parâmetros de configuração para a API do Tanzu Kubernetes Grid Service v1alpha1.

    Os valores necessários para o campo noProxy vêm da Workload Network no Supervisor Cluster. Consulte a imagem no tópico acima sobre onde obter esses valores.

    Por exemplo:
    apiVersion: run.tanzu.vmware.com/v1alpha1
    kind: TkgServiceConfiguration
    metadata:
      ...
      name: tkg-service-configuration-example
      resourceVersion: "44170525"
      selfLink: /apis/run.tanzu.vmware.com/v1alpha1/tkgserviceconfigurations/tkg-service-configuration
      uid: 10347195-5f0f-490e-8ae1-a758a724c0bc
    spec:
      defaultCNI: antrea
      proxy:
        httpProxy: http://user:[email protected]:3128
        httpsProxy: http://user:[email protected]:3128
        noProxy: [10.246.0.0/16,192.168.144.0/20,192.168.128.0/20]
  7. Para aplicar as alterações, salve o arquivo no editor de texto. Para cancelar, feche o editor sem salvar.

    Quando você salva as alterações no editor de texto, o kubectl atualiza Tanzu Kubernetes Grid Service com a configuração definida na especificação de serviço do tkg-service-configuration.

  8. Verifique se o Tanzu Kubernetes Grid Service está atualizado com as configurações de proxy.
    kubectl get tkgserviceconfigurations -o yaml
  9. Para verificar, provisione um cluster do Tanzu Kubernetes. Consulte o Fluxo de trabalho para clusters de Tanzu Kubernetes provisionamento.
    Use o seguinte comando para confirmar que o cluster está usando o proxy.
    kubectl get tkc CLUSTER-NAME -n NAMESPACE -o yaml

Configuração de proxy baseada em certificado

Usar um servidor proxy para rotear o tráfego da Internet é um requisito rígido para alguns ambientes. Por exemplo, uma empresa em um setor altamente regulamentado, como uma instituição financeira, exige que todo o tráfego da Internet passe por um proxy corporativo.

Você pode configurar o Tanzu Kubernetes Grid Service para provisionar Tanzu Kubernetes clusters para usar um servidor proxy para o tráfego HTTP / S de saída. Para obter mais informações, consulte Parâmetros de configuração para a API do Tanzu Kubernetes Grid Service v1alpha1.

Conforme mostrado no exemplo, você pode adicionar certificados confiáveis para o servidor proxy à especificação do TkgServiceConfiguration.
apiVersion: run.tanzu.vmware.com/v1alpha1
kind: TkgServiceConfiguration
metadata:
  name: tkg-service-configuration-example
spec:
  defaultCNI: antrea
  proxy:
    httpProxy: http://user:[email protected]:3128
    httpsProxy: http://user:[email protected]:3128
    noProxy: [10.246.0.0/16,192.168.144.0/20,192.168.128.0/20]
  trust:
    additionalTrustedCAs:
      - name: first-cert-name
        data: base64-encoded string of a PEM encoded public cert 1
      - name: second-cert-name
        data: base64-encoded string of a PEM encoded public cert 2
  defaultNodeDrainTimeout: 0

Configuração de registro privado externo

Você pode configurar o Tanzu Kubernetes Grid Service com certificados personalizados para conectar clusters do Tanzu Kubernetes com um registro privado externo. Para obter mais informações, consulte Usar um registro de contêiner externo com Tanzu Kubernetes clusters.
apiVersion: run.tanzu.vmware.com/v1alpha1
kind: TkgServiceConfiguration
metadata:
  name: tkg-service-configuration-example
spec:
  defaultCNI: antrea
  trust:
    additionalTrustedCAs:
      - name: harbor-vm-cert
        data: <<<base64-encoded string of a PEM encoded public cert>>>>