Definição dos parâmetros do ciclo de vida do contêiner
Cenário
O CCE fornece funções de retorno de chamada para o gerenciamento do ciclo de vida de aplicações conteinerizadas. Por exemplo, se você quiser que um contêiner execute uma determinada operação antes de parar, poderá registrar uma função de gancho.
O CCE fornece as seguintes funções de retorno de chamada do ciclo de vida:
- Startup Command: executado para iniciar um contêiner. Para mais detalhes, consulte Comandos de inicialização.
- Post-Start: executado imediatamente após o início de um contêiner. Para mais detalhes, consulte Processamento pós-inicialização.
- Pre-Stop: executado antes de um container ser parado. A função de processamento pré-parada ajuda a garantir que os serviços em execução nos pods possam ser concluídos com antecedência no caso de atualização ou exclusão do pod. Para mais detalhes, consulte Processamento pré-parada.
Comandos de inicialização
Por padrão, o comando padrão durante o início da imagem. Para executar um comando específico ou reescrever o valor de imagem padrão, você deve executar configurações específicas:
Uma imagem do Docker tem metadados que armazenam informações de imagem. Se os comandos e argumentos do ciclo de vida não estiverem definidos, o CCE executará os comandos e argumentos padrão, ou seja, instruções do Docker ENTRYPOINT e CMD, fornecidas durante a criação da imagem.
Se os comandos e argumentos usados para executar um contêiner forem definidos durante a criação da aplicação, os comandos padrão ENTRYPOINT e CMD serão substituídos durante a criação da imagem. As regras são as seguintes:
Imagem ENTRYPOINT |
Imagem CMD |
Comando para executar um contêiner |
Parâmetros para executar um contêiner |
Comando executado |
---|---|---|---|---|
[touch] |
[/root/test] |
Não definido |
Não definido |
[touch /root/test] |
[touch] |
[/root/test] |
[mkdir] |
Não definido |
[mkdir] |
[touch] |
[/root/test] |
Não definido |
[/opt/test] |
[touch /opt/test] |
[touch] |
[/root/test] |
[mkdir] |
[/opt/test] |
[mkdir /opt/test] |
- Efetue logon no console do CCE. Ao criar uma carga de trabalho, configure as informações do contêiner e selecione Lifecycle.
- Insira um comando e argumentos na página de guia Startup Command.
Tabela 2 Comando de inicialização do contêiner Itens de configuração
Procedimento
Comando
Digite um comando executável, por exemplo, /run/server.
Se houver vários comandos executáveis, escreva-os em linhas diferentes.
NOTA:No caso de vários comandos, você é aconselhado a executar /bin/sh ou outros comandos shell. Outros comandos são usados como parâmetros.
Args
Insira o argumento que controla o comando em execução do contêiner, por exemplo, --port=8080.
Se houver vários argumentos, separe-os em linhas diferentes.
Processamento pós-inicialização
- Efetue logon no console do CCE. Ao criar uma carga de trabalho, configure as informações do contêiner e selecione Lifecycle.
- Defina os parâmetros de processamento pós-inicialização na página de guia Post-Start.
Tabela 3 Parâmetros de processamento pós-inicialização Parâmetro
Descrição
CLI
Defina os comandos a serem executados no contêiner para o processamento pós-inicialização. O formato de comando é Command Args[1] Args[2].... Command é um comando do sistema ou um programa executável definido pelo usuário. Se nenhum caminho for especificado, um programa executável no caminho padrão será selecionado. Se vários comandos precisarem ser executados, escreva os comandos em um script para execução. Os comandos que são executados em segundo plano ou de forma assíncrona não são suportados.
Exemplo de comando:
exec: command: - /install.sh - install_agent
Digite /install install_agent no script. Este comando indica que install.sh será executado depois que o contêiner for criado com sucesso.
Solicitação HTTPS
Envie uma solicitação HTTP para processamento pós-inicialização. Os parâmetros relacionados são descritos a seguir:
- Path: (opcional) URL de solicitação.
- Port: (obrigatório) porta de solicitação.
- Host: (opcional) endereço IP do host solicitado. O valor padrão é o endereço IP do pod.
Processamento pré-parada
- Efetue logon no console do CCE. Ao criar uma carga de trabalho, configure as informações do contêiner e selecione Lifecycle.
- Defina os parâmetros de processamento pré-inicialização na página de guia Pre-Stop.
Tabela 4 Parâmetros de processamento pré-parada Parâmetro
Descrição
CLI
Definir comandos a serem executados no contêiner para processamento pré-parada. O formato de comando é Command Args[1] Args[2].... Command é um comando do sistema ou um programa executável definido pelo usuário. Se nenhum caminho for especificado, um programa executável no caminho padrão será selecionado. Se vários comandos precisarem ser executados, escreva os comandos em um script para execução.
Exemplo de comando:
exec: command: - /uninstall.sh - uninstall_agent
Digite /uninstall uninstall_agent no script. Esse comando indica que uninstall.sh será executado antes que o contêiner conclua sua execução e pare de ser executado.
Solicitação HTTPS
Envie uma solicitação HTTP para pré-parada de processamento. Os parâmetros relacionados são descritos a seguir:
- Path: (opcional) URL de solicitação.
- Port: (obrigatório) porta de solicitação.
- Host: (opcional) endereço IP do host solicitado. O valor padrão é o endereço IP do pod.
Exemplo YAML
Esta seção usa o Nginx como um exemplo para descrever como definir o ciclo de vida do contêiner.
No seguinte arquivo de configuração, o comando postStart é definido para executar o comando install.sh no diretório /bin/bash. preStop é definido para executar o comando uninstall.sh.
apiVersion: apps/v1 kind: Deployment metadata: name: nginx spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - image: nginx command: - sleep 3600 # Startup command imagePullPolicy: Always lifecycle: postStart: exec: command: - /bin/bash - install.sh # Post-start command preStop: exec: command: - /bin/bash - uninstall.sh # Pre-stop command name: nginx imagePullSecrets: - name: default-secret