Instalar noutras distribuições do Kubernetes
Esta página mostra como instalar o Config Connector numa distribuição do Kubernetes que não seja o Google Kubernetes Engine (GKE) no Google Cloud, por exemplo, o GKE no AWS.
Antes de começar
Antes de começar, certifique-se de que realizou as seguintes tarefas:
- Selecione ou crie um Google Cloud projeto para instalar o Config Connector.
- Certifique-se de que tem autorizações para criar e transferir uma conta de serviço para o projeto.
- Crie ou identifique um cluster do Kubernetes onde ainda não tenha instalado o Config Connector.
Instalar o Config Connector
Para instalar o Config Connector noutro ambiente do Kubernetes, depois de criar ou identificar um cluster do Kubernetes, crie uma conta de serviço de gestão de identidade e de acesso (IAM) e, em seguida, instale os componentes do Config Connector no seu cluster.
Criar um ClusterRoleBinding
O Config Connector precisa de autorização para criar funções do Kubernetes antes de poder criar recursos.
Confirme que pode criar funções executando o seguinte comando:
kubectl auth can-i create roles
Se o resultado for yes, avance para a secção Criar uma identidade.
Se o resultado for no, crie um ClusterRoleBinding no cluster, o que
lhe permite criar funções:
kubectl create clusterrolebinding cluster-admin-binding \
--clusterrole cluster-admin \
--user ACCOUNT_EMAIL
Substitua ACCOUNT_EMAIL pelo email que usa para iniciar sessão na sua conta de faturação do Google Cloud.
O resultado deve conter a expressão cluster-admin-binding created. Se essa frase não aparecer, contacte o administrador da conta de faturação do Google Cloud ou do cluster do GKE acerca das autorizações.
Criar uma identidade
O Config Connector precisa de um Cloud ID para comunicar com outros recursos. Para configurar a identidade, crie uma conta de serviço do IAM e uma chave da conta de serviço. Depois disso, importa as credenciais da chave como um segredo em cada cluster que execute o Config Connector.
No conjunto de instruções seguinte, vai importar uma chave de Google Cloud credenciais da conta de serviço para o cluster do Kubernetes. A importação de credenciais de contas de serviço diretamente para um cluster é geralmente considerada insegura, especialmente se executar cargas de trabalho personalizadas ou de terceiros no mesmo cluster. Esta abordagem pode tirar partido de potenciais lacunas de escalada do nó para o cluster e roubar a identidade da Google Cloud conta de serviço através deste segredo. Se estiver a usar um cluster do GKE, recomendamos que use a Federação de identidades de cargas de trabalho para o GKE.
Criar uma conta de serviço
Para criar uma conta de serviço, conclua os passos seguintes:
Crie uma conta de serviço do IAM. Se tiver uma conta de serviço existente, pode usá-la em vez de criar uma nova conta de serviço.
Use a CLI gcloud para criar a conta de serviço executando o seguinte comando:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAMESubstitua
SERVICE_ACCOUNT_NAMEpelo nome da sua conta de serviço.Para saber mais sobre como criar contas de serviço, consulte o artigo Criar e gerir contas de serviço.
Conceda autorizações elevadas à conta de serviço IAM no seu projeto:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/owner"Substitua o seguinte:
PROJECT_IDcom o ID do seu Google Cloud projeto.SERVICE_ACCOUNT_NAMEcom o nome da sua conta de serviço.
Crie uma chave de conta de serviço e exporte as respetivas credenciais para um ficheiro com o nome
key.json:gcloud iam service-accounts keys create --iam-account \ SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com key.jsonSubstitua o seguinte:
SERVICE_ACCOUNT_NAMEcom o nome da sua conta de serviço.PROJECT_IDcom o ID do seu Google Cloud projeto.
Aplicar as credenciais ao cluster
Para aplicar as credenciais ao cluster onde quer executar o Config Connector, conclua os seguintes passos:
Crie o espaço de nomes
cnrm-system:kubectl create namespace cnrm-systemImporte as credenciais da chave como um segredo.
kubectl create secret generic SECRET_NAME \ --from-file key.json \ --namespace cnrm-systemSubstitua SECRET_NAME pelo nome que quer dar ao seu segredo.
Remova as credenciais do seu sistema:
rm key.json
Instalar o operador do Config Connector
Conclua os passos seguintes para instalar o operador do Config Connector:
Transfira o ficheiro tar do operador do Config Connector mais recente:
gcloud storage cp gs://configconnector-operator/latest/release-bundle.tar.gz release-bundle.tar.gzExtraia o ficheiro TAR:
tar zxvf release-bundle.tar.gzInstale o operador do Config Connector no cluster:
kubectl apply -f operator-system/configconnector-operator.yaml
Configurar o Config Connector
Para configurar o Config Connector através do operador, cria um ficheiro de configuração para o ConfigConnector
CustomResource e, em seguida, aplica-o através do comando kubectl apply.
Para configurar o Config Connector através do operador:
Copie o seguinte YAML para um ficheiro com o nome
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: AbsentSubstitua SECRET_NAME pelo nome do segredo que criou anteriormente.
Aplique a configuração ao cluster com
kubectl apply:kubectl apply -f configconnector.yaml
Especificar onde criar os recursos
O Config Connector pode organizar os recursos por projeto, pasta ou organização, da mesma forma que organizaria os recursos com o Google Cloud.
Antes de criar recursos com o Config Connector, tem de configurar onde criar os seus recursos. Para determinar onde criar o recurso, o Config Connector usa uma anotação na configuração do recurso ou num espaço de nomes existente. Para mais informações, consulte o artigo Organizar recursos.
Se não tiver um espaço de nomes para este fim, crie um comkubectl.
kubectl create namespace NAMESPACE
Substitua NAMESPACE pelo nome do espaço de nomes. Por exemplo
config-connector.
Selecione um separador para escolher onde quer que o Config Connector crie recursos.
Projeto
Para criar recursos num determinado projeto, execute o seguinte comando:
kubectl annotate namespace \ NAMESPACE cnrm.cloud.google.com/project-id=PROJECT_ID
Substitua o seguinte:
NAMESPACEcom o nome do seu espaço de nomes.PROJECT_IDcom o ID do seu Google Cloud projeto.
Pasta
Para criar recursos numa determinada pasta, execute o seguinte comando:
kubectl annotate namespace \ NAMESPACE cnrm.cloud.google.com/folder-id=FOLDER_ID
Substitua o seguinte:
NAMESPACEcom o nome do seu espaço de nomes.FOLDER_IDcom o ID da sua Google Cloud pasta.
Organização
Para criar recursos numa determinada organização, execute o seguinte comando:
kubectl annotate namespace \ NAMESPACE cnrm.cloud.google.com/organization-id=ORGANIZATION_ID
Substitua o seguinte:
NAMESPACEcom o nome do seu espaço de nomes.ORGANIZATION_IDcom o ID da sua Google Cloud organização.
Quando anota o seu espaço de nomes, o Config Connector cria recursos no projeto, na pasta ou na organização correspondente. Para saber mais sobre como o Config Connector usa os espaços de nomes do Kubernetes, consulte os artigos Espaços de nomes do Kubernetes e Google Cloud projetos.
Validar a instalação
O Config Connector executa todos os respetivos componentes num espaço de nomes denominado cnrm-system.
Pode verificar se os pods estão prontos executando o seguinte comando:
kubectl wait -n cnrm-system \
--for=condition=Ready pod --all
Se o Config Connector estiver instalado corretamente, o resultado é semelhante ao seguinte:
pod/cnrm-controller-manager-0 condition met
Atualizar o Config Connector
Para atualizar o Config Connector, transfira 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
Desinstalar o Config Connector
Use kubectl delete para remover os CRDs do Config Connector juntamente com 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
O que se segue?
- Saiba como escolher um tipo de instalação.
- Saiba como resolver problemas do Config Connector.