Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 74 additions & 0 deletions pt/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -428,6 +428,80 @@ Fique à vontade para aprender muito sobre Kubernetes utilizando esse livro!
- [Criando Regras de Network Policy](day-14/README.md#criando-regras-de-network-policy)
- [Ingress](day-14/README.md#ingress)
- [Egress](day-14/README.md#egress)

</details>

<details>
<summary>DAY-15</summary>

- [Descomplicando o Kubernetes](day-15/README.md#descomplicando-o-kubernetes)
- [DAY-15: Descomplicando RBAC e controle de acesso no Kubernetes](day-15/README.md#day-15-descomplicando-rbac-e-controle-de-acesso-no-kubernetes)
- [Conteúdo do Day-15](day-15/README.md#conteúdo-do-day-15)
- [O que iremos ver hoje?](day-15/README.md#o-que-iremos-ver-hoje)
- [RBAC](day-15/README.md#rbac)
- [O que é RBAC?](day-15/README.md#o-que-é-rbac)
- [Primeiro exemplo de RBAC](day-15/README.md#primeiro-exemplo-de-rbac)
- [Criando um Usuário para acesso ao cluster](day-15/README.md#criando-um-usuário-para-acesso-ao-cluster)
- [Criando um Role para o nosso usuário](day-15/README.md#criando-um-role-para-o-nosso-usuário)
- [apiGroups](day-15/README.md#apigroups)
- [Recursos](day-15/README.md#recursos)
- [Verbos](day-15/README.md#verbos)
- [Criando a Role](day-15/README.md#criando-a-role)
- [Criando um RoleBinding para o nosso usuário](day-15/README.md#criando-um-rolebinding-para-o-nosso-usuário)
- [Adicionando o certificado do usuário no kubeconfig](day-15/README.md#adicionando-o-certificado-do-usuário-no-kubeconfig)
- [Acessando o cluster com o novo usuário](day-15/README.md#acessando-o-cluster-com-o-novo-usuário)
- [ClusterRole e ClusterRoleBinding](day-15/README.md#clusterrole-e-clusterrolebinding)
- [ClusterRole e ClusterRoleBinding para o usuário admin](day-15/README.md#clusterrole-e-clusterrolebinding-para-o-usuário-admin)
- [Removendo o usuário](day-15/README.md#removendo-o-usuário)
- [Utilizando Tokens para Service Accounts](day-15/README.md#utilizando-tokens-para-service-accounts)
- [Criando um Service Account](day-15/README.md#criando-um-service-account)
- [Criando um Secret para o Service Account](day-15/README.md#criando-um-secret-para-o-service-account)
- [Utilizando o Token do Service Account](day-15/README.md#utilizando-o-token-do-service-account)
- [Removendo o Service Account](day-15/README.md#removendo-o-service-account)
- [Final do Day-15](day-15/README.md#final-do-day-15)

</details>

<details>
<summary>DAY-16</summary>

- [Descomplicando o Kubernetes](day-16/README.md#descomplicando-o-kubernetes)
- [DAY-16: Descomplicando Helm](day-16/README.md#day-16-descomplicando-helm)
- [Conteúdo do Day-16](day-16/README.md#conteúdo-do-day-16)
- [O que iremos ver hoje?](day-16/README.md#o-que-iremos-ver-hoje)
- [O que é o Helm?](day-16/README.md#o-que-é-o-helm)
- [O que é um Chart?](day-16/README.md#o-que-é-um-chart)
- [Criando o nosso primeiro Chart](day-16/README.md#criando-o-nosso-primeiro-chart)
- [Instalando o nosso Chart](day-16/README.md#instalando-o-nosso-chart)
- [Atualizando o nosso Chart](day-16/README.md#atualizando-o-nosso-chart)
- [Utilizando `range` e o `if` no Helm](day-16/README.md#utilizando-range--e-o-if-no-helm)
- [Utilizando `default`, `toYaml` e `toJson` no Helm](day-16/README.md#utilizando-default-toyaml-e-tojson-no-helm)
- [O Que São Helpers no Helm?](day-16/README.md#o-que-são-helpers-no-helm)
- [Por Que Usar Helpers?](day-16/README.md#por-que-usar-helpers)
- [Criando o Nosso Primeiro Helper](day-16/README.md#criando-o-nosso-primeiro-helper)
- [Helpers Avançados: Exemplos Práticos](day-16/README.md#helpers-avançados-exemplos-práticos)
- [Exemplo 1: Controlando a Complexidade](day-16/README.md#exemplo-1-controlando-a-complexidade)
- [Exemplo 2: Personalização Baseada em Ambiente](day-16/README.md#exemplo-2-personalização-baseada-em-ambiente)
- [Melhores Práticas ao Usar Helpers](day-16/README.md#melhores-práticas-ao-usar-helpers)
- [Criando o `_helpers.tpl` da nossa App](day-16/README.md#criando-o-_helperstpl-da-nossa-app)
- [Passo 1: Criando o arquivo `_helpers.tpl`](day-16/README.md#passo-1-criando-o-arquivo-_helperstpl)
- [Labels](day-16/README.md#labels)
- [Resources](day-16/README.md#resources)
- [Ports](day-16/README.md#ports)
- [Passo 2: Refatorando `Deployments.yaml` e `Services.yaml`](day-16/README.md#passo-2-refatorando-deploymentsyaml-e-servicesyaml)
- [O nosso `Deployments.yaml`](day-16/README.md#o-nosso-deploymentsyaml)
- [O nosso `Services.yaml`](day-16/README.md#o-nosso-servicesyaml)
- [Passo 3: Refatorando os ConfigMaps](day-16/README.md#passo-3-refatorando-os-configmaps)
- [Atualizando o `_helpers.tpl`](day-16/README.md#atualizando-o-_helperstpl)
- [Refatorando `config-map-dp.yaml`](day-16/README.md#refatorando-config-map-dpyaml)
- [Refatorando `config-map-obs.yaml`](day-16/README.md#refatorando-config-map-obsyaml)
- [Criando um repositório de Helm Charts](day-16/README.md#criando-um-repositório-de-helm-charts)
- [Criando o repositório no Github](day-16/README.md#criando-o-repositório-no-github)
- [Inicializando o repositório](day-16/README.md#inicializando-o-repositório)
- [Configurando o GitHub Pages](day-16/README.md#configurando-o-github-pages)
- [Utilizando o nosso repositório de Helm Charts](day-16/README.md#utilizando-o-nosso-repositório-de-helm-charts)
- [O que vimos no dia de hoje](day-16/README.md#o-que-vimos-no-dia-de-hoje)

</details>

&nbsp;
Expand Down
2 changes: 1 addition & 1 deletion pt/day-3/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ metadata:
app: nginx-deployment
name: nginx-deployment
spec:
replicas: 1
replicas: 3
selector:
matchLabels:
app: nginx-deployment
Expand Down
2 changes: 1 addition & 1 deletion pt/day-4/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -1592,7 +1592,7 @@ Da mesma forma o `failureThreshold` não pode ser maior que 1, então vamos alte
initialDelaySeconds: 10 # O tempo que iremos esperar para executar a primeira vez a probe
periodSeconds: 10 # De quanto em quanto tempo iremos executar a probe
timeoutSeconds: 5 # O tempo que iremos esperar para considerar que a probe falhou
successThreshold: 2 # O número de vezes que a probe precisa passar para considerar que o container está pronto
successThreshold: 1 # O número de vezes que a probe precisa passar para considerar que o container está pronto
failureThreshold: 3 # O número de vezes que a probe precisa falhar para considerar que o container não está pronto
```

Expand Down
2 changes: 1 addition & 1 deletion pt/day-6/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,7 @@ Uma coisa que podemos ver é que o nosso `Storage Class` está com a opção `Is

&nbsp;

Vamos criar um novo `Storage Class` para o nosso cluster Kubernetes no kind, com o nome "local-storage", e vamos definir o provisionador como "kubernetes.io/host-path", que cria volumes PersistentVolume no diretório do host.
Vamos criar um novo `Storage Class` para o nosso cluster Kubernetes no kind, com o nome "local-storage", e vamos definir o provisionador como "kubernetes.io/no-provisioner", que cria volumes PersistentVolume no diretório do host.

```bash
apiVersion: storage.k8s.io/v1
Expand Down
6 changes: 3 additions & 3 deletions pt/day-7/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ No Kubernetes, um serviço é uma abstração que define um conjunto lógico de

Agora, o que isso tem a ver com os `StatefulSets`?

Os `StatefulSets` e os `Headless Services` geralmente trabalham juntos no gerenciamento de aplicações stateful. O `Headless Service` é responsável por permitir a comunicação de rede entre os Pods em um `StatefulSet`, enquanto o ` gerencia o deployment e o scaling desses Pods.
Os `StatefulSets` e os `Headless Services` geralmente trabalham juntos no gerenciamento de aplicações stateful. O `Headless Service` é responsável por permitir a comunicação de rede entre os Pods em um `StatefulSet`, enquanto o `StatefulSet` gerencia o deployment e o scaling desses Pods.

Aqui está como eles funcionam juntos:

Expand Down Expand Up @@ -425,7 +425,7 @@ kubectl expose deployment MEU_DEPLOYMENT --port=80 --type=NodePort

&nbsp;

Perceba que no comando acima estamos criando um `Service` do tipo `NodePort`, ou seja, o `Service` será acessível de fora do cluster usando <NodeIP>:<NodePort>.
Perceba que no comando acima estamos criando um `Service` do tipo `NodePort`, ou seja, o `Service` será acessível de fora do cluster usando `<NodeIP>:<NodePort>`.

Estamos ainda passando o parâmetro `--port=80` para que o `Service` seja exposto na porta 80.

Expand Down Expand Up @@ -550,7 +550,7 @@ spec:

Nada novo aqui, somente o fato que estamos pedindo para o Kubernetes criar um `Service` do tipo `LoadBalancer`.

ê deseja expor um serviço a ser acessado externamente por usuários ou sistemas que não estão dentro do seu cluster Kubernetes. Este tipo de serviço pode ser considerado quando:
O `LoadBalancer` é utilizado quando se deseja expor um serviço a ser acessado externamente por usuários ou sistemas que não estão dentro do seu cluster Kubernetes. Este tipo de serviço pode ser considerado quando:

- **Provedores de nuvem**: Seu cluster Kubernetes está hospedado em um provedor de nuvem que suporta balanceadores de carga, como AWS, GCP, Azure, etc. Nesse caso, quando um serviço do tipo LoadBalancer é criado, um balanceador de carga é automaticamente provisionado no provedor de nuvem.

Expand Down
2 changes: 1 addition & 1 deletion pt/day-8/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ Pronto, acho que você já está pronto para criar os seus Secrets, então é ho

##### Criando nosso primeiro Secret

Agora que você já sabe o que são os Secrets, já entender que Base64 não é criptografia e já sabe como codificar e decodificar uma string usando o Base64, vamos criar o nosso primeiro Secret.
Agora que você já sabe o que são os Secrets, já entendeu que Base64 não é criptografia e já sabe como codificar e decodificar uma string usando o Base64, vamos criar o nosso primeiro Secret.

Primeiro, vamos criar um Secret do tipo Opaque. Este é o tipo de Secret mais comum, usado para armazenar informações arbitrárias.

Expand Down