diff --git a/pt/README.md b/pt/README.md index 9a2ccfaf..35a18292 100755 --- a/pt/README.md +++ b/pt/README.md @@ -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) + + + +
+DAY-15 + +- [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) + +
+ +
+DAY-16 + +- [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) +
  diff --git a/pt/day-3/README.md b/pt/day-3/README.md index b043e076..91eac673 100755 --- a/pt/day-3/README.md +++ b/pt/day-3/README.md @@ -71,7 +71,7 @@ metadata: app: nginx-deployment name: nginx-deployment spec: - replicas: 1 + replicas: 3 selector: matchLabels: app: nginx-deployment diff --git a/pt/day-4/README.md b/pt/day-4/README.md index 98a9583e..1e02e7fd 100755 --- a/pt/day-4/README.md +++ b/pt/day-4/README.md @@ -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 ``` diff --git a/pt/day-6/README.md b/pt/day-6/README.md index ced173a5..15c2b8fc 100755 --- a/pt/day-6/README.md +++ b/pt/day-6/README.md @@ -259,7 +259,7 @@ Uma coisa que podemos ver é que o nosso `Storage Class` está com a opção `Is   -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 diff --git a/pt/day-7/README.md b/pt/day-7/README.md index 650be5fb..646cd7d8 100755 --- a/pt/day-7/README.md +++ b/pt/day-7/README.md @@ -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: @@ -425,7 +425,7 @@ kubectl expose deployment MEU_DEPLOYMENT --port=80 --type=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 :. +Perceba que no comando acima estamos criando um `Service` do tipo `NodePort`, ou seja, o `Service` será acessível de fora do cluster usando `:`. Estamos ainda passando o parâmetro `--port=80` para que o `Service` seja exposto na porta 80. @@ -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. diff --git a/pt/day-8/README.md b/pt/day-8/README.md index bd8c345d..ca3ecdeb 100755 --- a/pt/day-8/README.md +++ b/pt/day-8/README.md @@ -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.