|
Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official. |
CloudInit CRD
Você pode usar o CloudInit CRD para configurar as configurações do sistema operacional SUSE Virtualization manualmente ou usando soluções GitOps.
Background
O SUSE Virtualization sistema operacional usa o elemental-toolkit, que possui uma forma única de suporte ao cloud-init.
As configurações configuradas durante o processo de instalação são escritas no elemental arquivo cloud-init no diretório /oem. Como o sistema operacional é imutável, o arquivo cloud-init garante que as configurações específicas do nó sejam aplicadas em cada reinicialização.
O CloudInit CRD expõe o arquivo cloud-init através de um CRD do Kubernetes. Isso permite que você modifique as configurações específicas do nó após a instalação sem precisar tomar medidas para tornar o sistema de arquivos raiz gravável.
Além disso, o CloudInit CRD é persistido e sincronizado com os hosts subjacentes para que as alterações feitas diretamente no sistema operacional não sejam perdidas sempre que os nós forem reinicializados e atualizados.
|
O |
Conceitos Básicos
O seguinte exemplo adiciona chaves SSH a todos os nós em um SUSE Virtualization cluster existente.
apiVersion: node.harvesterhci.io/v1beta1
kind: CloudInit
metadata:
name: my-ssh-keys
spec:
matchSelector:
harvesterhci.io/managed: "true"
filename: 99-my-ssh-keys
contents: |
stages:
network:
- name: "add my ssh keys"
authorized_keys:
rancher:
- ssh-rsa key1
- ssh-rsa key2
paused: false
O spec campo contém o seguinte:
-
matchSelector (required): Seletor de rótulos usado para identificar os nós aos quais a alteração deve ser aplicada. Você pode usar oharvesterhci.io/managed: "true"rótulo para selecionar todos os nós. -
filename (required): Nome do arquivo em/oem. Os arquivos cloud-init em/oemsão aplicados em ordem alfabética. Isso pode ser usado para garantir que as alterações de arquivo sejam aplicadas durante a inicialização. -
content (required): Conteúdo inline para o recurso cloud-init Elemental que é escrito para os nós de destino. -
paused (optional): Usado para pausar a reconciliação doCloudInitCRD. Os controladores SUSE Virtualization monitoram os arquivos cloud-init Elemental que são gerenciados peloCloudInitCRD. Mudanças diretas feitas nesses arquivos são imediatamente reconciliadas de volta ao estado definido, a menos que o CRD esteja pausado.
Uma vez que o objeto é criado, você pode fazer login nos nós de destino para verificar os resultados.
No exemplo a seguir, um arquivo chamado /oem/99-my-ssh-keys.yaml é criado e posteriormente monitorado pelos SUSE Virtualization controladores.
harvester-qhgd4:/oem # more 99-my-ssh-keys.yaml
stages:
network:
- name: "add my ssh keys"
authorized_keys:
rancher:
- ssh-rsa key1
- ssh-rsa key2
O status sub-recurso pode ser usado para rastrear a implantação de uma mudança nos nós subjacentes.
No exemplo a seguir, os status valores indicam que a mudança foi aplicada a todos os três nós no cluster.
status:
rollouts:
harvester-kfs2c:
conditions:
- lastTransitionTime: "2024-08-26T03:57:33Z"
message: ""
reason: CloudInitApplicable
status: "True"
type: Applicable
- lastTransitionTime: "2024-08-26T03:57:33Z"
message: Local file checksum is the same as the CloudInit checksum
reason: CloudInitChecksumMatch
status: "False"
type: OutOfSync
- lastTransitionTime: "2024-08-26T03:57:33Z"
message: 99-my-ssh-keys.yaml is present under /oem
reason: CloudInitPresentOnDisk
status: "True"
type: Present
harvester-qhgd4:
conditions:
- lastTransitionTime: "2024-08-26T03:57:33Z"
message: ""
reason: CloudInitApplicable
status: "True"
type: Applicable
- lastTransitionTime: "2024-08-26T04:00:00Z"
message: Local file checksum is the same as the CloudInit checksum
reason: CloudInitChecksumMatch
status: "False"
type: OutOfSync
- lastTransitionTime: "2024-08-26T04:00:00Z"
message: 99-my-ssh-keys.yaml is present under /oem
reason: CloudInitPresentOnDisk
status: "True"
type: Present
harvester-rmvzg:
conditions:
- lastTransitionTime: "2024-08-26T03:57:33Z"
message: ""
reason: CloudInitApplicable
status: "True"
type: Applicable
- lastTransitionTime: "2024-08-26T03:57:33Z"
message: Local file checksum is the same as the CloudInit checksum
reason: CloudInitChecksumMatch
status: "False"
type: OutOfSync
- lastTransitionTime: "2024-08-26T03:57:33Z"
message: 99-my-ssh-keys.yaml is present under /oem
reason: CloudInitPresentOnDisk
status: "True"
type: Present
|
Uma vez que as mudanças do cloud-init são aplicadas, você deve reiniciar os nós para garantir que o |
Excluir o CloudInit CRD resulta na remoção de arquivos associados dos nós subjacentes. Assim como em outros recursos do cloud-init, os efeitos dessa mudança não são exibidos até que os nós impactados sejam reiniciados.
Você é encorajado a aproveitar SUSE® Rancher Prime: Continuous Delivery e o CloudInit CRD para gerenciar mudanças no sistema operacional SUSE Virtualization.