Como instalar em outras distribuições do Kubernetes
Nesta página, mostramos como instalar o Config Connector em uma distribuição do Kubernetes diferente do Google Kubernetes Engine (GKE) no Google Cloud, por exemplo, GKE na AWS.
Antes de começar
Antes de começar, veja se você realizou as seguintes tarefas:
- Selecione ou crie um projeto do Google Cloud para instalar o Config Connector.
- Verifique se você tem permissões para criar e fazer o download de uma conta de serviço para o projeto.
- Crie ou identifique um cluster do Kubernetes em que você ainda não tenha instalado o Config Connector.
Como instalar o Config Connector
Para instalar o Config Connector em outro ambiente do Kubernetes, depois de criar ou identificar um cluster do Kubernetes, crie uma conta de serviço do gerenciamento de identidade e acesso (IAM) e instale os componentes do Config Connector no cluster.
Como criar uma ClusterRoleBinding
O Config Connector precisa de permissão para criar Papéis do Kubernetes antes de poder criar recursos.
Verifique se é possível criar Papéis executando o comando a seguir:
kubectl auth can-i create roles
Se a saída for yes
, vá até a seção Como criar uma identidade.
Se a saída for no
, crie um ClusterRoleBinding
no cluster, que
você pode criar papéis:
kubectl create clusterrolebinding cluster-admin-binding \
--clusterrole cluster-admin \
--user ACCOUNT_EMAIL
Substitua ACCOUNT_EMAIL pelo e-mail que você usa para fazer login na conta do Cloud Billing.
A saída precisa conter a frase cluster-admin-binding created
. Se essa
frase não aparecer, entre em contato com a conta do Cloud Billing ou com o administrador do cluster do
GKE sobre permissões.
Como criar uma identidade
O Config Connector precisa de uma identidade do Cloud Identity para se comunicar com outros recursos. Para configurar a identidade, crie uma conta de serviço do IAM e uma chave da conta de serviço. Em seguida, importe as credenciais da chave como um Secret em cada cluster que executa o Config Connector.
No próximo conjunto de instruções, você vai importar um a chave de credenciais da conta de serviço no cluster do Kubernetes. A importação de credenciais de conta de serviço diretamente para um cluster geralmente é considerada não segura, especialmente se você executar cargas de trabalho personalizadas ou de terceiros no mesmo cluster. Essa abordagem pode aproveitar as vantagens dos nós para cluster brechas de encaminhamento e personificar a conta de serviço do Google Cloud com esse secret. Se você usa um cluster do GKE, recomendamos usando a federação de identidade da carga de trabalho para o GKE.
Como criar uma conta de serviço
Para criar uma conta de serviço, conclua estas etapas:
Criar uma conta de serviço do IAM Se você tiver uma conta de serviço atual, poderá usá-la em vez de criar uma nova.
Use a CLI gcloud para criar a conta de serviço executando o seguinte comando:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Substitua
SERVICE_ACCOUNT_NAME
pelo nome da sua conta de serviço.Para saber mais sobre como criar contas de serviço, consulte Como criar e gerenciar contas de serviço.
Conceda à Conta de serviço do IAM permissões elevadas no projeto:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/owner"
Substitua:
PROJECT_ID
pelo ID do projeto do Google Cloud.SERVICE_ACCOUNT_NAME
pelo nome da conta de serviço.
Crie uma Chave de conta de serviço e exporte as credenciais para um arquivo chamado
key.json
.gcloud iam service-accounts keys create --iam-account \ SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com key.json
Substitua:
SERVICE_ACCOUNT_NAME
pelo nome da conta de serviço;PROJECT_ID
pelo ID do projeto do Google Cloud.
Como aplicar as credenciais ao cluster
Para aplicar as credenciais ao cluster em que você quer executar o Config Connector, conclua estas etapas:
Crie o namespace
cnrm-system
kubectl create namespace cnrm-system
Importe as credenciais da chave como um Secret.
kubectl create secret generic SECRET_NAME \ --from-file key.json \ --namespace cnrm-system
Substitua SECRET_NAME pelo nome que você quer fornecer ao secret.
Remova as credenciais do sistema.
rm key.json
Como instalar o operador do Config Connector
Conclua estas etapas para instalar o operador do Config Connector:
Faça o download do arquivo .tar mais recente do operador do Config Connector:
gcloud storage cp gs://configconnector-operator/latest/release-bundle.tar.gz release-bundle.tar.gz
Extraia o arquivo tar:
tar zxvf release-bundle.tar.gz
Instale o operador do Config Connector no cluster:
kubectl apply -f operator-system/configconnector-operator.yaml
Como configurar o Config Connector
Para instalar o Config Connector usando o operador, crie um
arquivo de configuração
para o ConfigConnector
CustomResource e aplique-o usando o comando kubectl apply
.
Para configurar o Config Connector usando o operador:
Copie o seguinte YAML para um arquivo chamado
configconnector.yaml
.apiVersion: core.cnrm.cloud.google.com/v1beta1 kind: ConfigConnector metadata: # the name is restricted to ensure that there is only ConfigConnector # instance installed in your cluster name: configconnector.core.cnrm.cloud.google.com spec: mode: cluster credentialSecretName: SECRET_NAME stateIntoSpec: Absent
Substitua SECRET_NAME pelo nome do secret que você criou anteriormente.
Aplique a configuração ao cluster com
kubectl apply
:kubectl apply -f configconnector.yaml
Como especificar o local para criar os recursos
O Config Connector pode organizar recursos por projeto, pasta ou organização, da mesma forma que você organizaria recursos com o Google Cloud.
Antes de criar recursos com o Config Connector, você precisa configurar onde criar seus recursos. Para determinar onde criar o recurso, o Config Connector usa uma anotação na configuração do recurso ou em um namespace atual. Para mais informações, consulte Como organizando recursos.
Se você não tiver um namespace para essa finalidade, crie um comkubectl
.
kubectl create namespace NAMESPACE
Substitua NAMESPACE
pelo nome do namespace. Por exemplo: config-connector
.
Selecione uma guia para escolher onde quer que o Config Connector crie recursos.
Projeto
Para criar recursos em determinado projeto, execute o seguinte comando:
kubectl annotate namespace \ NAMESPACE cnrm.cloud.google.com/project-id=PROJECT_ID
Substitua:
NAMESPACE
pelo nome do namespace;PROJECT_ID
pelo ID do projeto do Google Cloud.
Pasta
Para criar recursos em determinada pasta, execute o seguinte comando:
kubectl annotate namespace \ NAMESPACE cnrm.cloud.google.com/folder-id=FOLDER_ID
Substitua:
NAMESPACE
pelo nome do namespace;FOLDER_ID
pelo ID da pasta do Google Cloud.
Organização
Para criar recursos em determinada organização, execute o seguinte comando:
kubectl annotate namespace \ NAMESPACE cnrm.cloud.google.com/organization-id=ORGANIZATION_ID
Substitua:
NAMESPACE
pelo nome do namespace;ORGANIZATION_ID
pelo ID da organização do Google Cloud.
Quando você anota o namespace, o Config Connector cria recursos no projeto, na pasta ou na organização correspondente. Para saber mais sobre como o Config Connector usa namespaces do Kubernetes, consulte Namespaces do Kubernetes e projetos do Google Cloud.
Como verificar a instalação
Todos os componentes do Config Connector são executados em um namespace chamado cnrm-system
.
Para verificar se os pods estão prontos, execute o comando a seguir:
kubectl wait -n cnrm-system \
--for=condition=Ready pod --all
Se o Config Connector estiver instalado corretamente, o resultado será semelhante a este:
pod/cnrm-controller-manager-0 condition met
Como fazer upgrade do Config Connector
Para fazer upgrade do Config Connector, faça o download e instale a versão mais recente do operador do Config Connector:
gcloud storage cp gs://configconnector-operator/latest/release-bundle.tar.gz release-bundle.tar.gz
tar zxvf release-bundle.tar.gz
kubectl apply -f operator-system/configconnector-operator.yaml
Como desinstalar o Config Connector
Use kubectl delete
para remover as CRDs do Config Connector e os componentes
do controlador:
kubectl delete ConfigConnector configconnector.core.cnrm.cloud.google.com \
--wait=true
Para desinstalar o operador do Config Connector, execute o seguinte comando:
kubectl delete -f operator-system/configconnector-operator.yaml --wait=true
A seguir
- Saiba mais sobre como escolher um tipo de instalação.
- Saiba como resolver problemas do Config Connector.