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, oGKE na 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 do Workload Identity 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_NAME
Substitua
SERVICE_ACCOUNT_NAME
pelo 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_ID
com o seu Google Cloud ID do projeto.SERVICE_ACCOUNT_NAME
com 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.json
Substitua o seguinte:
SERVICE_ACCOUNT_NAME
com o nome da sua conta de serviço.PROJECT_ID
com o seu Google Cloud ID do 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-system
Importe as credenciais da chave como um segredo.
kubectl create secret generic SECRET_NAME \ --from-file key.json \ --namespace cnrm-system
Substitua 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.gz
Extraia o ficheiro TAR:
tar zxvf release-bundle.tar.gz
Instale 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: Absent
Substitua 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 seu 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:
NAMESPACE
com o nome do seu espaço de nomes.PROJECT_ID
com o seu Google Cloud ID do 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:
NAMESPACE
com o nome do seu espaço de nomes.FOLDER_ID
com o ID da pasta Google Cloud .
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:
NAMESPACE
com o nome do seu espaço de nomes.ORGANIZATION_ID
com 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.