# Kubernetes create pod: Como criar um Kubernetes pod

Kubernetes pods são configurados de forma **imperativa, declarativa ou usando interfaces de API**. Também é possível especificar e personalizar recursos adicionais para os respectivos contêineres. Aprenda a criar um Kubernetes pod.

## Kubernetes create pod: Pré-requisitos

Para executar um [Kubernetes pod](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/kubernetes-pod/), você precisa que um **cluster do Kubernetes** esteja em execução, seja localmente em um sistema de desenvolvimento, na nuvem ou internamente. Para realizar sua instalação, recomendamos a leitura do nosso [tutorial Kubernetes](https://www.ionos.com/digitalguide/server/configuration/kubernetes-tutorial/ "Tutorial Kubernetes"). Também é necessário que a ferramenta de linha de comando *kubectl* esteja disponível e configurada no computador para habilitar a interação com o cluster do Kubernetes. Você ainda deverá verificar se o arquivo *kubeconfig* foi configurado corretamente para estabelecer uma conexão bem-sucedida com o cluster.

Dica A solução [Managed Kubernetes](https://cloud.ionos.com/managed/kubernetes "Managed Kubernetes — IONOS") da IONOS assegura alta disponibilidade para o desenvolvimento dos seus projetos no K8s ao mesmo tempo em que otimiza os custos. A integração com o ecossistema em nuvem da IONOS também oferece armazenamento de dados persistente, avançado e totalmente integrado.

## Kubernetes create pod: Passo a passo para criar Kubernetes pod

Existem três formas de se criar Kubernetes pods:

1. Configuração imperativa
2. Configuração declarativa
3. Uso de interface de API

### Configuração imperativa

No método imperativo, você transmite instruções explícitas ao sistema por meio da linha de comando `kubectl`, informando como criar o Kubernetes pod sem ter preparado um arquivo de configuração detalhado com antecedência.

```shell
kubectl run nginx --image=nginx --restart=Never
```

Esse comando cria um pod único chamado **nginx** que contém o servidor web Nginx.

Como o método imperativo aplica alterações diretas sem uma definição clara do estado pretendido, a abordagem declarativa costuma ser mais recomendada.

### Configuração declarativa

A abordagem declarativa no Kubernetes requer que o estado desejado dos recursos seja definido por meio de **arquivos de configuração YAML**.

Abra um editor de texto e crie um arquivo YAML (por exemplo, `nginx-pod.yaml`) que descreva o estado desejado do pod Nginx.

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
    name: nginx-deployment
spec:
    selector:
        matchLabels:
            app: nginx
    minReadySeconds: 5
    template:
        metadata:
            labels:
                app: nginx
        spec:
            containers:
            - name: nginx-container
                image: nginx:latest
                ports:
                - containerPort: 80
```

Use o comando `kubectl apply` para ativar o Kubernetes pod baseado na configuração declarativa.

```shell
kubectl apply -f nginx-pod.yaml
```

As configurações declarativas que você especifica nos arquivos YAML são um registro concreto do **estado pretendido**, incluindo a versão do pod a ser criado. Elas possibilitam o gerenciamento e o monitoramento transparentes dos recursos no seu cluster do Kubernetes.

### Uso de interface de API

O Kubernetes disponibiliza uma **API RESTful** que você pode usar para interagir com o cluster. Antes de usar a API, é preciso realizar o processo de autenticação e autorização. Isso costuma ser feito com tokens ou certificados de acesso, dependendo da configuração do cluster do Kubernetes.

O exemplo abaixo mostra como criar um **arquivo JSON** para um pod Nginx usando a API REST.

```shell
cat > nginx-pod.json <<EOF
{
    "apiVersion": "apps/v1",
    "kind": "Deployment",
    "metadata": {
        "name": "nginx-deployment"
    },
    "spec": {
        "selector": {
            "matchLabels": {
                "app": "nginx"
            }
        },
        "minReadySeconds": 5,
        "template": {
            "metadata": {
                "labels": {
                    "app": "nginx"
                }
            },
            "spec": {
                "containers": [
                    {
                        "name": "nginx-container",
                        "image": "nginx:latest",
                        "ports": [
                            {
                                "containerPort": 80
                            }
                        ]
                    }
                ]
            }
        }
    }
}
EOF
```

Para ativar o Kubernetes pod, use a ferramenta `curl` para se comunicar com a API REST do cluster do Kubernetes:

```shell
curl -k -v -X POST -H "Authorization: Bearer <JWT_TOKEN>" -H "Content-Type: application/json" https://cluster-ip:6443/api/v1/namespaces/default/pods -d@nginx-pod.json
```

Esse comando `curl` envia uma **solicitação HTTPS-POST** para um endpoint do cluster do Kubernetes. As opções `-k` e `-v` indicam que a verificação do certificado SSL e o modo detalhado (*verbose mode*) devem ser ignorados. Uma solicitação POST é definida com `-X POST`. O cabeçalho **Authorization** contém um token do portador, também chamado de *bearer token* (substitua `<JWT_TOKEN>` pelo token real), enquanto **Content-Type** especifica o tipo do formato de dados como JSON. A opção `-d@nginx-pod.json` envia os dados para o servidor.

## Visualizar pods

Para verificar o status atual de todos os pods no respectivo **namespace**, insira o comando a seguir:

```shell
kubectl get pods
```

O resultado traz uma lista dos pods existentes e seus respectivos status, momento de inicialização e demais detalhes.

Para obter informações mais detalhadas, insira o comando a seguir:

```shell
kubectl describe pod my-pod
```

Esse comando retorna as informações detalhadas sobre o pod, incluindo configurações, eventos e transições de estados.

Para visualizar os **logs** do contêiner principal no Kubernetes pod, use o comando a seguir:

```shell
kubectl logs my-pod
```

Se houver vários contêineres, você pode marcar o contêiner com a opção `-c`.

## Excluir pod

A exclusão de pods é um processo direto que pode ser feito com um comando simples.

```shell
kubectl delete pod nginx
```

O Kubernetes pod selecionado será interrompido, e o contêiner associado a ele também será desativado. No exemplo, removemos o pod “nginx” do cluster.


This is a markdown version of: [https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/criar-kubernetes-pod/](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/criar-kubernetes-pod/) for AI/LLM consumption.