diff --git a/es/day-1/README.md b/es/day-1/README.md index a9e7a9d1..9c62cc44 100644 --- a/es/day-1/README.md +++ b/es/day-1/README.md @@ -211,8 +211,8 @@ Protocolo|Dirección|Rango de Puertos|Propósito|Utilizado Por TCP|Entrada|6443*|Servidor de API de Kubernetes|Todos TCP|Entrada|2379-2380|Cliente API de servidor etcd|kube-apiserver, etcd TCP|Entrada|10250|API Kubelet|Propio, Control plane -TCP|Entrada|10251|kube-scheduler|Propio -TCP|Entrada|10252|kube-controller-manager|Propio +TCP|Entrada|10259|kube-scheduler|Propio +TCP|Entrada|10257|kube-controller-manager|Propio - Cualquier puerto marcado con * es personalizable. Asegúrate de que el puerto modificado también esté abierto. @@ -247,12 +247,8 @@ Es importante saber que la forma en que k8s gestiona los contenedores es ligeram Vamos a instalar ``kubectl`` utilizando los siguientes comandos. ```bash -curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl - -chmod +x ./kubectl - -sudo mv ./kubectl /usr/local/bin/kubectl - +curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" +sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl kubectl version --client ``` @@ -281,12 +277,12 @@ kubectl version --client Si prefieres el método tradicional, la instalación se puede realizar con los siguientes comandos: ```bash -curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl" - -chmod +x ./kubectl +curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl" sudo mv ./kubectl /usr/local/bin/kubectl +sudo chown root: /usr/local/bin/kubectl + kubectl version --client ``` @@ -349,7 +345,7 @@ Recuerda, no estás obligado(a) a probar/utilizar todas las opciones a continuac Es importante enfatizar que Minikube debe ser instalado localmente, no en un *cloud provider*. Por lo tanto, las especificaciones de *hardware* a continuación se refieren a tu máquina local. -- Procesador: 1 núcleo; +- Procesador: 2 núcleo; - Memoria: 2 GB; - Disco duro: 20 GB. @@ -433,7 +429,7 @@ Hyper-V Requirements: A hypervisor has been detected. Features required for ```   -Realice el download y la instalación de un *hypervisor* (preferentemente el [Oracle VirtualBox](https://www.virtualbox.org)), si en el paso anterior no se detecta la presencia de uno. Finalmente, descarga el instalador de Minikube [aqui](https://github.com/kubernetes/minikube/releases/latest) y ejecútalo. +Realice el download y la instalación de un *hypervisor* (preferentemente el [Oracle VirtualBox](https://www.virtualbox.org)), si en el paso anterior no se detecta la presencia de uno. Finalmente, descarga el instalador de Minikube [aqui](https://github.com/kubernetes/minikube/releases/latest/download/minikube-windows-amd64.exe) y ejecútalo. ##### Iniciando, deteniendo y eliminando Minikube @@ -608,7 +604,7 @@ El Kind (*Kubernetes in Docker*) es otra alternativa para ejecutar Kubernetes en Para realizar la instalación en GNU/Linux, ejecuta los siguientes comandos. ```bash -curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.14.0/kind-linux-amd64 +curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64 chmod +x ./kind @@ -629,7 +625,7 @@ sudo brew install kind ou ```bash -curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.14.0/kind-darwin-amd64 +curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-darwin-amd64 chmod +x ./kind mv ./kind /usr/bin/kind ``` @@ -641,7 +637,7 @@ mv ./kind /usr/bin/kind Para realizar la instalación en Windows, ejecuta los siguientes comandos. ```bash -curl.exe -Lo kind-windows-amd64.exe https://kind.sigs.k8s.io/dl/v0.14.0/kind-windows-amd64 +curl.exe -Lo kind-windows-amd64.exe https://kind.sigs.k8s.io/dl/v0.20.0/kind-windows-amd64 Move-Item .\kind-windows-amd64.exe c:\kind.exe ``` @@ -950,4 +946,4 @@ kubectl delete service nginx ``` Luego, vuelve a listar los recursos para verificar si todavía están presentes. -  +  \ No newline at end of file diff --git a/local-cluster-vm/content.md b/local-cluster-vm/content.md index 7b347c35..a5a2ccf5 100644 --- a/local-cluster-vm/content.md +++ b/local-cluster-vm/content.md @@ -24,12 +24,12 @@ Dentro do kubernetes para para fazer o deploy de uma app temos que os seguintes Antes de instalar o minikube, precisamos realizar a instalação do kubectl: ### LINUX ```bash -curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl +curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl" ``` ```bash -chmod +x kubectl && mv kubectl /usr/local/bin/ +sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl ``` -```ash +```bash curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \ && chmod +x minikube ``` ```bash @@ -151,4 +151,4 @@ kubeadm init ### Join node in cluster ```bash sudo kubeadm join : --token 4ipu0m.5q0or83aao7j2aru --discovery-token-ca-cert-hash sha256:739d75755ed9dba30415af83e64774aad1e701cf9d0dd3393dd05908af6068c9 -``` +``` \ No newline at end of file diff --git a/pt/day-1/README.md b/pt/day-1/README.md index 42cbfd34..36c4cffa 100755 --- a/pt/day-1/README.md +++ b/pt/day-1/README.md @@ -229,12 +229,8 @@ TCP|Inbound|30000-32767|NodePort|Services All Vamos instalar o ``kubectl`` com os seguintes comandos. ``` -curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl - -chmod +x ./kubectl - -sudo mv ./kubectl /usr/local/bin/kubectl - +curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" +sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl kubectl version --client ```   @@ -259,12 +255,12 @@ kubectl version --client Já com o método tradicional, a instalação pode ser realizada com os seguintes comandos. ``` -curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl" - -chmod +x ./kubectl +curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl" sudo mv ./kubectl /usr/local/bin/kubectl +sudo chown root: /usr/local/bin/kubectl + kubectl version --client ```   diff --git a/pt/day-14/README.md b/pt/day-14/README.md index 448e48f5..c5b5d24c 100644 --- a/pt/day-14/README.md +++ b/pt/day-14/README.md @@ -478,8 +478,8 @@ spec: app: giropops-senhas ports: - protocol: TCP - port: 6379 - targetPort: 6379 + port: 5000 + targetPort: 5000 type: ClusterIP ``` @@ -916,6 +916,61 @@ spec: Pronto, agora o nosso Ingress Controller consegue acessar a nossa aplicação, e com isso, nossos clientes também conseguem acessar a nossa aplicação! + +Mas ainda temos um problema, os nossos Pods não conseguem acessar o DNS do cluster, então vamos criar uma Network Policy para permitir o acesso ao DNS do cluster e com isso o Pod de nossa App conseguirá acessar o Redis tranquilamente + +```yaml +apiVersion: networking.k8s.io/v1 +kind: NetworkPolicy +metadata: + name: allow-dns-access + namespace: giropops +spec: + podSelector: + matchLabels: {} + policyTypes: + - Egress + egress: + - to: + - namespaceSelector: + matchLabels: + kubernetes.io/metadata.name: kube-system + podSelector: + matchLabels: + k8s-app: kube-dns + ports: + - protocol: UDP + port: 53 +``` + +Pronto, um problema a menos! :D +Mas ainda temos outro! + +Quando criamos a regra de Egress bloqueando tudo, bloqueamos também o tráfego de saída de todos os Pods do Namespace `giropops`, e com isso, o nosso Pod de App não consegue acessar o Redis. + +```yaml +apiVersion: networking.k8s.io/v1 +kind: NetworkPolicy +metadata: + name: allow-ns + namespace: giropops +spec: + podSelector: + matchLabels: {} + policyTypes: + - Egress + egress: + - to: + - namespaceSelector: + matchLabels: + kubernetes.io/metadata.name: giropops + podSelector: + matchLabels: + app: redis +``` + +Pronto, agora acredito que todos os problemas foram resolvidos e podemos acessar a nossa App e o Redis normalmente! :D + Outra opção bem interessante de utilizar é o `ipBlock`, com ele você pode especificar um endereço IP ou um CIDR para permitir o acesso, veja: ```yaml