Para testar se o kubectl pode se autenticar e acessar seu cluster Kubernetes, use cluster-info:
| Bloco de código |
|---|
| kubectl cluster-info |
Se o kubectl puder se autenticar com sucesso no seu cluster, você deverá ver a seguinte saída: | Bloco de código |
|---|
Output
Kubernetes master is running at https://kubernetes_master_endpoint
CoreDNS is running at https://coredns_endpoint
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. |
O kubectl é configurado usando os arquivos de configuração kubeconfig. Por padrão, o kubectl procurará um arquivo chamado config no diretório $HOME/.kube. Para mudar isso, você pode definir a variável de ambiente $KUBECONFIG apontando para um arquivo kubeconfig personalizado ou passar o arquivo personalizado em tempo de execução usando a flag --kubeconfig: | Bloco de código |
|---|
| kubectl cluster-info --kubeconfig=caminho_para_seu_arquivo_kubeconfig |
Nota: Se você estiver usando um cluster Kubernetes gerenciado, seu provedor de nuvem deverá ter disponibilizado seu arquivo kubeconfig.
Se você não quiser usar a flag --kubeconfig com todos os comandos, e não existe o arquivo ~/.kube/config, crie um diretório chamado ~/.kube no seu diretório home, se ele ainda não existir, e copie o arquivo kubeconfig, renomeando-o para config: | Bloco de código |
|---|
| mkdir ~/.kube
cp seu_arquivo_kubeconfig ~/.kube/config |
Agora, execute cluster-info novamente para testar sua conexão. Modificando Sua Configuração do kubectlVocê também pode modificar sua configuração usando o conjunto de comandos kubectl config. Para visualizar sua configuração do kubectl, use o subcomando view: | Bloco de código |
|---|
| kubectl config view
Output
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED |
Modificando Clusters
Para buscar uma lista de clusters definidos no seu kubeconfig, use get-clusters: | Bloco de código |
|---|
| kubectl config get-clusters |
Para adicionar um cluster à sua configuração, use o subcomando set-cluster:
| Bloco de código |
|---|
| kubectl config set-cluster novo_cluster --server=endereço_do_servidor --certificate-authority=caminho_para_a_autoridade_de_certificação |
Para excluir um cluster da sua configuração, use delete-cluster: | Bloco de código |
|---|
| kubectl config delete-cluster |
Nota: Isso exclui apenas o cluster da sua configuração e não exclui o cluster Kubernetes real. Modificando UsuáriosVocê pode executar operações similares para usuários usando set-credentials: | Bloco de código |
|---|
| kubectl config set-credentials username --client-certificate=/caminho/para/arquivo/certificado --client-key=/caminho/para/arquivo/chave |
Para excluir um usuário da sua configuração, você pode executar unset:
| Bloco de código |
|---|
| kubectl config unset users.username |
Contextos
Um context ou contexto no Kubernetes é um objeto que contém um conjunto de parâmetros de acesso para o seu cluster. Ele consiste em uma tripla de cluster, namespace e user. Os contextos permitem alternar rapidamente entre diferentes conjuntos de configurações de cluster. Para ver seu contexto atual, você pode usar current-context: | Bloco de código |
|---|
| kubectl config current-context
Output
|
Para ver uma lista de todos os contextos configurados, execute get-contexts:
| Bloco de código |
|---|
| kubectl config get-contexts
Output
|
Para definir um contexto, use set-context:
| Bloco de código |
|---|
| kubectl config set-context nome_do_contexto --cluster=nome_do_cluster --user=user_name --namespace=namespace |
Você pode alternar entre contextos com use-context:
| Bloco de código |
|---|
| kubectl config use-context nome_do_contexto |
E você pode excluir um contexto com delete-context:
| Bloco de código |
|---|
| kubectl config delete-context nome_do_contexto |
Usando Namespaces
Um Namespace no Kubernetes é uma abstração que lhe permite subdividir seu cluster em vários clusters virtuais. Usando Namespaces, você pode dividir os recursos do cluster entre várias equipes e objetos de escopo de maneira apropriada. Por exemplo, você pode ter um Namespace prod para cargas de trabalho de produção e um Namespace dev para cargas de trabalho de desenvolvimento e teste. Para buscar e imprimir uma lista de todos os Namespaces no cluster, use get namespace: | Bloco de código |
|---|
| kubectl get namespace |
| Bloco de código |
|---|
| Output
NAME STATUS AGE
default Active 2d21h
kube-node-lease Active 2d21h
kube-public Active 2d21h
kube-system Active 2d21h |
Para definir um Namespace para o seu contexto atual, use set-context --current:
| Bloco de código |
|---|
| kubectl config set-context --current --namespace=nome_do_namespace |
Para criar um Namespace, use create namespace:
| Bloco de código |
|---|
| kubectl create namespace namespace_name
Output
namespace/sammy created |
De maneira similar, para excluir um Namespace, use delete namespace:
| Bloco de código |
|---|
| kubectl delete namespace namespace_name
Output
namespace/sammy created |
Atenção: A exclusão de um Namespace excluirá tudo no Namespace, incluindo a execução de Deployments, Pods e outras cargas de trabalho. Execute este comando apenas se tiver certeza de que deseja eliminar o que está sendo executado no Namespace ou se estiver excluindo um Namespace vazio. Para buscar todos os Pods em um determinado Namespace ou para realizar outras operações nos recursos de um determinado Namespace, certifique-se de incluir a flag --namespace:
| Bloco de código |
|---|
| kubectl get pods --namespace=nome_do_namespace |
|