O VNodectl gerencia VNodes, add-ons e outros recursos via linha de comando. As seções a seguir descrevem a sintaxe, os parâmetros e exemplos dos comandos do VNodectl mais utilizados.
Pré-requisitos
VNodectl — Instale e configure a ferramenta de linha de comando VNodectl antes de executar qualquer comando descrito neste tópico.
Arquivo de configuração do VNode — Antes de executar um comando de VNode (
create,list,describe,updateoudelete), verifique se o arquivo~/.vnode/configexiste e está configurado corretamente.Arquivo kubeconfig do cluster — Um arquivo kubeconfig para o cluster que você deseja gerenciar. Os comandos de add-on e o comando
cluster cleanrecebem o caminho para o arquivo kubeconfig na opção--kubeconfig.
Visão geral dos comandos
Os comandos do VNodectl são agrupados pelo recurso em que atuam.
Comandos de VNode
|
Comando |
Descrição |
|
|
Crie um VNode. |
|
|
Consulta o status dos VNodes. |
|
|
Exibe os detalhes de um VNode específico. |
|
|
Atualize a configuração de um VNode especificado. |
|
|
Exclua um VNode especificado. |
Comandos de add-on e cluster
|
Comando |
Descrição |
|
|
Lista os add-ons disponíveis. |
|
|
Instala e ative um add-on. |
|
|
Desativa e desinstala um add-on. |
|
|
Limpa as configurações do cluster. |
Adicione--drya qualquer comandovnodepara executar uma validação no lado do cliente sem aplicar alterações. Se ocorrer um erro de compatibilidade de versão da API, adicione--kubernetes-versionpara especifique a versão do Kubernetes do seu cluster.
Gerencie VNodes
create
O comando create crie um VNode.
Sintaxe
vnode create [--vswitch-id <vswitch id>] [--security-group-id <security group id>] [--custom-resources <resource name>=<resource count>] [--cluster-dns <dns ip>] [--cluster-domain <cluster domain>]
Parâmetros
|
Parâmetro |
Descrição |
Exemplo |
|
|
O ID do vSwitch ao qual o VNode pertence. |
|
|
|
O ID do grupo de segurança ao qual o VNode pertence. |
|
|
|
Os recursos personalizados suportados pelo VNode. Se um pod do Elastic Container Instance (ECI) declarar um desses recursos personalizados em seus |
|
|
|
Os endereços IP dos servidores DNS. Se um pod ECI definir |
|
|
|
O nome de domínio do cluster. Após especifique este parâmetro, o Kubelet configura todos os containers para pesquisar neste domínio, além dos domínios de pesquisa do host. |
|
Exemplo 1: Criar um VNode sem parâmetros
[root@vnode-test001 ~]# vnode create
{"RequestId":"12B984BB-D3FB-53D2-8326-9A2E9EF7EF46","VirtualNodeId":"vnd-7xv6g0gp3ok6****"}
Exemplo 2: Criar um VNode com suporte a recursos personalizados
[root@vnode-test001 ~]# vnode create --custom-resources example1.com=10000,example2.com=20000
{"RequestId":"98965B78-4F19-5DA4-BAAA-E6461BF7FF67","VirtualNodeId":"vnd-7xv1zedhxp****"}
Após a criação do VNode, execute o comando kubectl describe node para visualize os detalhes do nó. Os recursos personalizados especificados aparecem nas seções Capacity e Allocatable.
Capacity:
alibabacloud.com/vfuse: 6k
cpu: 100k
ephemeral-storage: 40000Gi
example1.com: 10k
example2.com: 20k
memory: 1000Ti
nvidia.com/gpu: 1k
pods: 2k
Allocatable:
alibabacloud.com/vfuse: 6k
cpu: 100k
ephemeral-storage: 40000Gi
example1.com: 10k
example2.com: 20k
memory: 1000Ti
nvidia.com/gpu: 1k
pods: 2k
Exemplo 3: Criar um VNode com servidores DNS e domínio de cluster
[root@vnode-test001 ~]# vnode create --cluster-dns 192.168.0.1 --cluster-domain example.com
{"RequestId":"1FCB1308-7C96-5FF2-A7BB-202F69D1961C","VirtualNodeId":"vnd-7xv4qqroc5f****"}
Depois que o VNode for criado, execute o comando kubectl describe pod para visualize os detalhes de um pod ECI agendado para o VNode. Os valores especificados aparecem como as anotações k8s.aliyun.com/cluster-dns e k8s.aliyun.com/cluster-domain.
[root@vnode-test001 ~]# kubectl describe pod test-5748b8cfb6-xgmp7
Name: test-5748b8cfb6-xgmp7
Namespace: default
Priority: 0
Node: cn-guangzhou.vnd-7xv4qqroc5f****/192.168.XX.XX
Start Time: Mon, 27 Mar 2023 17:27:06 +0800
Labels: alibabacloud.com/eci=true
app=nginx
pod-template-hash=5748b8cfb6
Annotations: k8s.aliyun.com/cluster-dns: 192.168.0.1
k8s.aliyun.com/cluster-domain: example.com
k8s.aliyun.com/eci-created-by-template: true
k8s.aliyun.com/eci-extra-ephemeral-storage: 62Gi
k8s.aliyun.com/eci-instance-cpu: 2.0
k8s.aliyun.com/eci-instance-id: eci-7xv4qqroc****
k8s.aliyun.com/eci-instance-mem: 4.0
k8s.aliyun.com/eci-instance-spec: 2.0-4.0Gi
k8s.aliyun.com/eci-instance-zone: cn-guangzhou-a
k8s.aliyun.com/eci-matched-image-cache: imc-7xv80t0k3g****
list
O comando list consulta o status dos VNodes.
Sintaxe
vnode list
Exemplo
[root@vnode-test001 ~]# vnode list
VNODE ID VNODE NAME CREATED STATUS SCHEDULABLE ZONES
vnd-7xv6g0gp3ok**** vnode-cn-guangzhou-a-7xv6g0**** About a minute ago Ready cn-guangzhou-a
vnd-7xvetkyase7**** vnode-cn-guangzhou-a-7xvetk**** 49 minutes ago Ready cn-guangzhou-a
[root@vnode-test001 ~]#
describe
O comando describe exibe os detalhes de um VNode específico.
Sintaxe
vnode describe <vnode id>
Exemplo
[root@vnode-test001 ~]# vnode describe vnd-7xv6g0gp3ok69****
VNodeId: vnd-7xv6g0gp3ok69****
VNodeName: vnode-cn-guangzhou-a-7xv6g0gp3****
ClusterId:
RegionId: cn-guangzhou
ResourceGroupId: rg-acfm4ia6****
SecurityGroupId: sg-7xv5tcch****
VpcId: vpc-7xvuaoizvudf366bh****
VSwitchId: vsw-7xv4hi6ioxpw3****
Status: Ready
CreationTime: 2022-12-23T06:44:52Z
IntranetIp: 192.168.XX.54
InternetIp:
Cpu:
Memeory:
Tags: []
Events:
Type Reason Agent Message
----- ----- ----- -----
Normal StartingHeartBeat 2 minutes ago birth cry
Warning HeartBeatToECIServiceFailed 2 minutes ago fail to connect eci-service
Normal CreateEciForVnode 2 minutes ago [eci.virtualnode]Create Eci eci-7xv6g0gp3**** for Vnode
Normal StartingVKubelet 2 minutes ago Starting VKubelet.
update
O comando update atualize a configuração de um VNode especificado. É possível atualize os valores das opções --vswitch-id, --security-group-id, --custom-resources, --cluster-dns e --cluster-domain.
O comando update sobrescreve toda a configuração. Os valores de parâmetro fornecidos substituem os valores existentes. Por exemplo, se o VNode já estiver configurado com --custom-resources example1.com=10000 e você quiser adicionar o recurso personalizado example2.com com uma contagem de 10000, forneça --custom-resources example1.com=10000,example2.com=10000.
Sintaxe
vnode update <vnode id> [--vswitch-id <vswitch id>] [--security-group-id <security group id>] [--custom-resources <resource name>=<resource count>] [--cluster-dns <dns ip>] [--cluster-domain <cluster domain>]
Parâmetros
O comando update aceita as mesmas opções que o comando create. Para descrições das opções, consulte a tabela de parâmetros em create.
|
Parâmetro |
Descrição |
Exemplo |
|
|
O ID do vSwitch ao qual o VNode pertence. |
|
|
|
O ID do grupo de segurança ao qual o VNode pertence. |
|
|
|
Os recursos personalizados suportados pelo VNode. Se um pod do Elastic Container Instance (ECI) declarar um desses recursos personalizados em seus |
|
|
|
Os endereços IP dos servidores DNS. Se um pod ECI definir |
|
|
|
O nome de domínio do cluster. Após especifique este parâmetro, o Kubelet configura todos os containers para pesquisar neste domínio, além dos domínios de pesquisa do host. |
|
Exemplo
[root@vnode-test001 ~]# vnode update vnd-7xv1zedhxp**** --cluster-domain example.com
{"RequestId":"DA86B896-3A05-5A0C-A9D2-A1D433C85035"}
Para revisar a configuração do VNode após a atualização, execute o comando vnode describe.
delete
O comando delete exclua um VNode especificado.
Antes de exclua um VNode, certifique-se de que não há instâncias ECI em execução nele.
Sintaxe
vnode delete <vnode id>
Exemplo
[root@vnode-test001 ~]# vnode delete vnd-7xv6g0gp3ol****
are you sure to delete vnd-7xv6g0gp3ol**** ?(y/n)y
{"RequestId":"7B7E8276-772A-5229-B2D7-B3DD36A66432"}
Para verificar o estado dos seus VNodes após a exclusão, execute o comando vnode list.
Gerencie add-ons e configurações de cluster
Além dos VNodes, o VNodectl gerencia add-ons de cluster, como eci-profile e vnode-approver, e limpa configurações de cluster. Nos comandos desta seção, a opção --kubeconfig recebe o caminho para o arquivo kubeconfig do cluster alvo.
addon list
O comando addon list lista os add-ons disponíveis.
Sintaxe
vnode addon list --kubeconfig <kubeconfig path>
Exemplo
[root@vnode-test001 ~]# vnode addon list --kubeconfig ~/.kube/config
ADDON NAME | STATUS | MAINTAINER | REPOSITORY
-----------------+------------+--------------+------------------------------------------------------
eci-profile | enabled | ECI Group | https://github.com/aliyuneci/eci-profile.git
vnode-approver | disabled | ECI Group | https://github.com/aliyuneci/vnode-approver.git
addon enable
O comando addon enable instala e ative um add-on. Ele crie os recursos necessários para o add-on no cluster, como ClusterRole, CustomResourceDefinition, Service e Deployment.
Sintaxe
vnode addon enable <add-on name> --kubeconfig <kubeconfig path>
Exemplo
O exemplo a seguir ative o add-on eci-profile e, em seguida, lista os add-ons para confirme o novo status:
[root@vnode-test001 ~]# vnode addon list
ADDON NAME | STATUS | MAINTAINER | REPOSITORY
-----------------+------------+--------------+------------------------------------------------------
eci-profile | disabled | ECI Group | https://github.com/aliyuneci/eci-profile.git
vnode-approver | disabled | ECI Group | https://github.com/aliyuneci/vnode-approver.git
[root@vnode-test001 ~]# vnode addon enable eci-profile --kubeconfig ~/.kube/config
clusterrole.rbac.authorization.k8s.io/eci-profile created
clusterrolebinding.rbac.authorization.k8s.io/eci-profile created
customresourcedefinition.apiextensions.k8s.io/selectors.eci.aliyun.com created
service/eci-profile created
serviceaccount/eci-profile created
deployment.apps/eci-profile created
[root@vnode-test001 ~]# vnode addon list
ADDON NAME | STATUS | MAINTAINER | REPOSITORY
-----------------+------------+--------------+------------------------------------------------------
eci-profile | enabled | ECI Group | https://github.com/aliyuneci/eci-profile.git
vnode-approver | disabled | ECI Group | https://github.com/aliyuneci/vnode-approver.git
addon disable
O comando addon disable desativa e desinstala um add-on. Esse comando exclua os recursos criados para o add-on no cluster.
Sintaxe
vnode addon disable <add-on name> --kubeconfig <kubeconfig path>
Exemplo
O exemplo abaixo desativa o add-on eci-profile e depois lista os add-ons para confirme o novo status:
[root@vnode-test001 ~]# vnode addon list
ADDON NAME | STATUS | MAINTAINER | REPOSITORY
-----------------+------------+--------------+------------------------------------------------------
eci-profile | enabled | ECI Group | https://github.com/aliyuneci/eci-profile.git
vnode-approver | disabled | ECI Group | https://github.com/aliyuneci/vnode-approver.git
[root@vnode-test001 ~]# vnode addon disable eci-profile --kubeconfig ~/.kube/config
clusterrole.rbac.authorization.k8s.io "eci-profile" deleted
clusterrolebinding.rbac.authorization.k8s.io "eci-profile" deleted
customresourcedefinition.apiextensions.k8s.io "selectors.eci.aliyun.com" deleted
Error from server (NotFound): error when deleting "/root/.vnode/addon/eci-profile/eci-profile-cus...
service "eci-profile" deleted
serviceaccount "eci-profile" deleted
deployment.apps "eci-profile" deleted
[root@vnode-test001 ~]# vnode addon list
ADDON NAME | STATUS | MAINTAINER | REPOSITORY
-----------------+------------+--------------+------------------------------------------------------
eci-profile | disabled | ECI Group | https://github.com/aliyuneci/eci-profile.git
vnode-approver | disabled | ECI Group | https://github.com/aliyuneci/vnode-approver.git
cluster clean
O comando cluster clean limpa as configurações do cluster.
Execute o comando cluster clean se você não for mais utilizar VNodes.
Sintaxe
vnode cluster clean --kubeconfig <kubeconfig path> [--bootstrap]
A escolha da opção depende de como o cluster foi configurado anteriormente.
Exemplo 1: Limpar um cluster configurado pelo método padrão
vnode cluster clean --kubeconfig <kubeconfig path>
Exemplo 2: Limpar um cluster configurado pelo método de bootstrap TLS
vnode cluster clean --kubeconfig <kubeconfig path> --bootstrap