Saiba como configurar a porta do contentor e os argumentos e o comando do ponto de entrada do contentor.
Quando o Knative Serving inicia um contentor, executa o comando de ponto de entrada
predefinido da imagem
e os argumentos de comando predefinidos. Se quiser substituir o ponto de entrada e os argumentos de comando predefinidos da imagem, pode usar os campos command
e args
na configuração do contentor. O campo command
especifica o comando real
executado pelo contentor. O campo args
especifica os argumentos transmitidos a esse comando.
Configurar a porta do contentor
Qualquer alteração de configuração leva à criação de uma nova revisão. As revisões subsequentes também recebem automaticamente esta definição de configuração, a menos que faça atualizações explícitas para a alterar.
O contentor deve ouvir na porta definida pela variável de ambiente PORT
, em vez de numa porta codificada específica.
No entanto, se isto não for possível, pode configurar a porta na qual os pedidos são enviados para o contentor:
Consola
Aceda ao Knative serving na Google Cloud consola:
Clique em Criar serviço se estiver a configurar um novo serviço para o qual está a implementar. Se estiver a configurar um serviço existente, clique no serviço e, de seguida, em Editar e implementar nova revisão.
Em Definições avançadas, clique em Contentor.
Especifique a porta para a qual quer que os pedidos sejam enviados, se não for o valor predefinido de
8080
. Esta ação também define a variável de ambientePORT
.Clique em Seguinte para continuar para a secção seguinte.
Na secção Configure como este serviço é acionado, selecione a conetividade que quer usar para invocar o serviço.
Clique em Criar para implementar a imagem no Knative Serving e aguarde que a implementação termine.
Linha de comandos
Para serviços existentes, atualize uma definição de porta executando o comando
gcloud run services update
com os seguintes parâmetros:gcloud run services update SERVICE --port PORT
Substituição:
- SERVICE com o nome do serviço.
- PORT com a porta para a qual enviar pedidos. Tenha em atenção que a porta predefinida é
8080
.
Para novos serviços, defina a porta executando o comando
gcloud run deploy
com o parâmetro--port
:gcloud run deploy SERVICE --image=IMAGE_URL --port PORT
Substituição:
- SERVICE com o nome do serviço.
- IMAGE_URL com uma referência à imagem do contentor, por exemplo,
gcr.io/cloudrun/hello
. - PORT com a porta para a qual quer enviar pedidos. A porta predefinida é
8080
.
YAML
Pode transferir a configuração de um serviço existente para um ficheiro YAML com o comando gcloud run services describe
usando a flag --format=export
.
Em seguida, pode modificar esse ficheiro YAML e implementar essas alterações com o comando gcloud run services replace
.
Tem de garantir que modifica apenas os atributos especificados.
Transfira a configuração do seu serviço para um ficheiro denominado
service.yaml
no espaço de trabalho local:gcloud run services describe SERVICE --format export > service.yaml
Substitua SERVICE pelo nome do seu serviço de fornecimento do Knative.
No ficheiro local, atualize o atributo
containerPort:
:apiVersion: serving.knative.dev/v1 kind: Service spec: template: spec: containers: - image: IMAGE_URL ports: - containerPort: PORT
Substituir
- IMAGE_URL com uma referência à imagem do contentor, por exemplo,
gcr.io/cloudrun/hello
. - PORT com a porta para a qual quer enviar pedidos.
- IMAGE_URL com uma referência à imagem do contentor, por exemplo,
Substitua o serviço pela respetiva nova configuração através do seguinte comando:
gcloud run services replace service.yaml
Configurar o comando e os argumentos do ponto de entrada do contentor
Qualquer alteração de configuração leva à criação de uma nova revisão. As revisões subsequentes também recebem automaticamente esta definição de configuração, a menos que faça atualizações explícitas para a alterar.
Quando o Knative Serving inicia um contentor, executa o comando de ponto de entrada
predefinido da imagem.
Para especificar ou substituir o comando e os argumentos do ponto de entrada existentes definidos na imagem do contentor, pode configurar as definições command
e args
na configuração do contentor do Knative Serving.
Pode optar por configurar comandos, argumentos ou ambos os pontos de entrada. O comando que especificar no Knative serving substitui qualquer comando de ponto de entrada definido na imagem do contentor. Se optar por especificar apenas argumentos, esses argumentos são transmitidos e executados pelo comando entrypoint definido na imagem do contentor.
No Knative serving, pode configurar comandos e argumentos de ponto de entrada através da Google Cloud consola, da CLI do Google Cloud ou de um ficheiro YAML quando implementa um novo serviço, atualiza um serviço existente ou implementa uma revisão:
Consola
Aceda ao Knative serving na Google Cloud consola:
Clique em Criar serviço se estiver a configurar um novo serviço para o qual está a implementar. Se estiver a configurar um serviço existente, clique no serviço e, de seguida, em Editar e implementar nova revisão.
Em Definições avançadas, clique em Contentor.
Especifique o comando e os argumentos do ponto de entrada que quer que o contentor execute durante o arranque.
Clique em Seguinte para continuar para a secção seguinte.
Na secção Configure como este serviço é acionado, selecione a conetividade que quer usar para invocar o serviço.
Clique em Criar para implementar a imagem no Knative Serving e aguarde que a implementação termine.
Linha de comandos
Opções de parâmetros de comandos
-
Para especificar um argumento que contenha uma vírgula (
,
), tem de usar como caráter de escape cadaARG
com um delimitador diferente. Por exemplo, se usar@
:--args "^@^arg,with,commas@anotherarg@ARG3..."
-
Para especificar vários conjuntos de pares de chave-valor, pode especificar vários parâmetros para facilitar a leitura. Exemplo:
[...] --args "
ARG
1" \ --args "ARG
2" \ --args "ARG
3" -
Para usar sinais de igual (
=
) nos argumentos, tem de especificar cada argumento no seguinte formato:gcloud run services ... \ --args "--repo-allowlist=github.com/example/example_demo" \ --args "--gh-webhook-secret=XX"
Para os serviços existentes, atualize o comando entrypoint executando o comando
gcloud run services update
com os seguintes parâmetros:gcloud run services update SERVICE --command COMMAND --args ARG1,ARG2,ARG-N
Substituição:
- SERVICE com o nome do serviço.
- Opcional: COMMAND com o comando que quer que o contentor seja executado durante o arranque.
- Opcional: ARG1 com um ou mais argumentos para o comando que é executado durante o arranque. Use uma lista delimitada por vírgulas para vários argumentos. Como formatar os argumentos.
Para novos serviços, defina o comando de ponto de entrada executando o comando
gcloud run deploy
com o parâmetro--command
:gcloud run deploy SERVICE --image=IMAGE_URL --command COMMAND --args ARG1,ARG2,ARG-N
Substituição:
- SERVICE com o nome do serviço.
- IMAGE_URL com uma referência à imagem do contentor, por exemplo,
gcr.io/cloudrun/hello
. - Opcional: COMMAND com o comando que quer que o contentor seja executado durante o arranque.
- Opcional: ARG1 com um ou mais argumentos para o comando que é executado durante o arranque. Use uma lista delimitada por vírgulas para vários argumentos. Como formatar os argumentos.
YAML
Pode transferir a configuração de um serviço existente para um ficheiro YAML com o comando gcloud run services describe
usando a flag --format=export
.
Em seguida, pode modificar esse ficheiro YAML e implementar essas alterações com o comando gcloud run services replace
.
Tem de garantir que modifica apenas os atributos especificados.
Transfira a configuração do seu serviço para um ficheiro denominado
service.yaml
no espaço de trabalho local:gcloud run services describe SERVICE --format export > service.yaml
Substitua SERVICE pelo nome do seu serviço de fornecimento do Knative.
No ficheiro local, atualize os atributos
command
eargs
:apiVersion: serving.knative.dev/v1 kind: Service spec: template: spec: containers: - image: IMAGE_URL command: - COMMAND args: - "ARG1" - "ARG-N"
Substituição:
- IMAGE_URL com uma referência à imagem do contentor, por exemplo,
gcr.io/cloudrun/hello
. - Opcional: COMMAND com o comando que quer que o contentor seja executado durante o arranque.
- Opcional: ARG1 com um ou mais argumentos para o comando que é executado durante o arranque. Use uma lista delimitada por vírgulas para mais do que um argumento.
- IMAGE_URL com uma referência à imagem do contentor, por exemplo,
Substitua o serviço pela respetiva nova configuração através do seguinte comando:
gcloud run services replace service.yaml