Git Product home page Git Product logo

descomplicandokubernetes's Introduction

Discord

YouTube Channel Subscribers YouTube Channel Views Twitch Status GitHub followers Twitter Follow Twitter Follow

Docker Pulls Docker Pulls Docker Pulls

GitHub Repo stars GitHub Repo stars GitHub Repo stars GitHub Repo stars GitHub Repo stars GitHub Repo stars GitHub Repo stars GitHub Repo stars GitHub Repo stars

Descomplicando o Kubernetes

Devido a pandemia do Coronavirus (COVID-19, Jeferson Fernando liberou o acesso público a este repositório como forma de ajudar no combate a pandemia incentivando as pessoas a ficarem em casa adquirindo conhecimento e se aprimorando na profissão para poderem contribuir no local de trabalho ou mesmo se prepararem para novas oportunidades.

O conteúdo desse material é dividido em partes, as quais são dividas em "days" (day-1, day-2, day-3, etc) para facilitar o aprendizado. A ideia é o aluno focar no aprendizado por etapas e por esse motivo recomendamos que ele somente avance para a próxima parte quando estiver totalmente confortável com o conteúdo atual.

Neste material, você terá contato com conteúdos que abordam do nível iniciante ao avançado sobre Kubernetes. E agora que ele se tornou aberto, com a ajuda de todos vamos construir o maior e mais completo material sobre k8s do mundo.

Contamos com a sua ajuda para tornar este material ainda mais completo. Colabore! Para contribuir com melhorias no conteúdo, siga as instruções deste tutorial.

Veja os vídeos sobre Kubernetes, DevOps, Automação e outros assuntos relacionado à tecnologia nos canais da LINUXtips:

Veja os treinamentos disponíveis da LINUXtips:

Principais links da LINUXtips:

ACESSO AO LIVRO:

Descomplicando o Kubernetes

Esse material é parte do treinamento Descomplicando Kubernetes da LINUXtips. Ele foi desenhado para capacitar a pessoa estudante ou a pessoa profissional de TI a trabalhar com o Kubernetes em ambientes criticos.

O Treinamento é composto por material escrito, aulas gravadas em vídeo e aulas ao vivo. Durante o treinamento a pessoa será testada de forma prática, sendo necessário completar desafios reais para dar continuidade no treinamento.

O foco do treinamento é capacitar a pessoa para trabalhar com Kubernetes de maneira eficiente e totalmente preparada para trabalhar em ambientes críticos que utilizam containers.

Fique à vontade para aprender muito sobre Kubernetes utilizando esse livro!

Conteúdo

DAY-1
DAY-2
DAY-3
DAY-4
DAY-5
DAY-6
DAY-7
DAY-8
DAY-9
DAY-10
DAY-11
DAY-12
DAY-13
DAY-14
DAY-15
DAY-16

 

descomplicandokubernetes's People

Contributors

aeciopires avatar allythy avatar angolarti avatar badtuxx avatar dependabot[bot] avatar diegoaceneves avatar diogomajela avatar felipecafu95 avatar felipefrocha avatar gersontpc avatar giropops avatar grechiro avatar kelvins avatar kevinaugusto0 avatar klebercabral avatar laurobmb avatar luizdores avatar marcelofreire1988 avatar mengbr avatar osamucaaaa avatar p0ssuidao avatar pcfeduardo avatar pedrojorgeviana avatar rafaelzt avatar rapha-borges avatar rodriguesrodrigo avatar shazam01101 avatar spaww avatar stefanomartins avatar willdevsp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

descomplicandokubernetes's Issues

Planejamento de carreira para devs é subestimado 🚨

O mercado está configurado para requisitar muito dos devs, mas não para evoluí-los. Esse papel é feito pelos próprios devs que na maioria das vezes, os fazem sozinhos.

Se você já presenciou um dos fatores abaixo, é porque está ciente do problema que está acontecendo:

  • 💢 Falta de autoconhecimento e entendimento de mercado
    55% das empresas não têm nenhum plano de carreira desenvolvido e as que tem são totalmente relacionadas a ela e não ao talento. Você fica refém da empresa para definir a sua carreia e qual o seu nível de senioridade.
  • 📉 Falta de conexão entre carreira e educação
    Existem ótimos cursos e conteúdos no mercado, mas muitas das vezes você acaba perdendo tempo estudando coisas que não fazem sentido para o seu momento de carreira atual ou seu objetivo futuro.
  • 🏢 Assimetria de informação com empresas
    O que você realmente sabe sobre uma empresa antes de começar a trabalhar nela? na maioria das vezes do lado da empresa você só vê uma página de carreira com algumas frases motivacionais e uma descrição superficial da vaga. Isso é muito pouco.
  • 💔 Processos seletivos quebrados
    Talentos de tecnologia gastam uma enorme quantidade de tempo em processos seletivos que não levam a nada.

Estamos cansados de ver devs sem o controle de suas próprias carreiras. Quantas vezes você já perdeu tempo em cursos que não faziam sentido para sua carreira ou trabalhando em empresas que não te desenvolviam?
Desenvolva sua carreira de sucesso com quem mais entende do assunto clicando aqui. #PowerToDevelopers

Adicionar um repositório chamado "Desafio"

Uma pasta que contenha atividades extras, como por exemplo, criação de um determinado ambiente, criação e desenvolvimento de um site com integrações com serviços em nuvens, montar tarefas que possam rodar local que realizam tarefas simples do dia a dia.
Desafios com respostas para que haja a possibilidade de comparação, contendo explicações também.

Ajustar arquivo de configuração do kind com vários nós

Ajustar arquivo de configuração do kind com vários nós.

$   kind create cluster --config kind-3nodes.yaml
Creating cluster "kind" ...
ERROR: failed to create cluster: [invalid configuration for node 1: "worker1" is not a valid node role, invalid configuration for node 2: "worker2" is not a valid node role]

Conteúdo em HTML (Website)

Utilizar algum framework como o VuePress para gerar o conteúdo da documentação em HTML, permitindo a criação de uma interface mais amigável, com melhor indexação e buscas do conteúdo. Ex.: https://starship.rs/

Com o conteúdo em HTML, é possível hospedar em qualquer plataforma (como o Netlify) e usar algum domínio (como descomplicandok8s.com.br) para transformar o conteúdo em um website.

Além disso, o VuePress possui recursos de internacionalização, sendo possível adicionar vários idiomas e permitindo o usuário selecionar o de sua preferência (como no Starship) .

Abaixo, um exemplo gerado com o próprio projeto.

image

Ajuste install CentOS

Ajuste no arquivo sysct

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf

net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sysctl --system

Internacionalização

Integrar o conteúdo com alguma plataforma para gestão de internacionalização, como por exemplo o Crowdin.

O uso de plataformas como essas permite acompanhar melhor como está o processo de tradução para cada idioma, como no exemplo abaixo:

image

Quando um novo conteúdo é criado no idioma original, automaticamente já fica disponível para os contribuidores de outros idiomas traduzirem, atualizando o progresso geral.

Além disso a própria ferramenta faz todo o processo de gestão dos arquivos gerados, o commit e o MR, deixando tudo pronto para só ser aprovado pelos mantenedores do projeto.

O Crowdin é gratuito para projetos Open Source.

DAY-16: Descomplicando Helm

Devido ao nome "giropops-senhas" contido no values.yaml, está sendo apresentada a seguinte mensagem de erro durante a instalação:

"Error: INSTALLATION FAILED: parse error at (giropops-senhas/templates/giropops-senhas-service.yaml:12): bad character U+002D '-'".

Todos os arquivos que contêm "{{ .Values.giropops-senhas..... }}" estão gerando esse erro.

A documentação deste projeto contém uma solução alternativa (workaround) que foi aplicada em "services.yaml", sendo ela "{{- range (index .Values "giropops-senhas").ports }}".
No entanto, tenho observado que todos os arquivos precisam que este workaround seja feito, utilizando o índice.

Seria o caso de alterar o nome giropops-senhas para algo como giropopsSenhas?

Explicação sobre rbac.

Criação e aplicação de rbac no ambiente e como utilizar, isso ajuda a galera que usa o k8s em empresa como eu e precisa aplicar rbac em novas namespaces e na liberação de acesso e afins.

vlw #VAIIIII

Indicação do cloud-provider no momento de inicializar o cluster

Bom dia.

Acho que muitos aqui vão instalar em cloud o cluster e mesmo que seja em instâncias de VM (EC2) para que você consiga utilizar os recursos de storage por exemplo você deve fazer isso no momento da inicialização do cluster passando o parâmetro --cloud-provider=aws.

Caso contrário você receberá o erro abaixo se tentar configurar um PV utilizando o driver da AWS.
Warning ProvisioningFailed 4s persistentvolume-controller Failed to provision volume with StorageClass "gp2": Failed to get AWS Cloud Provider. GetCloudProvider returned instead

Acredito que montar os tópicos de instalação para os principais providers seria interessante para todos.

Valeu pessoal,

Fernando Guse.

Imagens criadas a partir do docker

Boa tarde pessoal.

Estou só documentando aqui os perrengues e dificuldades que estou passando ao montar meu ambiente.

Outro ponto que peguei foi o seguinte, precisei criar uma imagem para uma aplicação PHP que temos e não estou utilizando nenhum registry ainda logo. meus workers não conseguem encontrar a imagem a menos que eu fizesse o buid neles até que eu crie um registry.

O status dos pods era ErrImageNeverPull

Acho que pode ser criada uma área de troubleshooting.

PS: Jeferson me coloca como colaborador ai hehehe.

Valeu.

Day_one ajuste no módulo nf_conntrack

Olá bom dia!

No day_one para subir o k8s precisamos de alguns módulos e nas versões do kernel >= 4.19 o módulo nf_conntrack_ipv4 não existe e acredito que pode ser substituído pelo nf_conntrack.

Erro ao tentar subir o nf_conntrack_ipv4
modprobe nf_conntrack_ipv4
modprobe: FATAL: Module nf_conntrack_ipv4 not found in directory /lib/modules/5.4.0-81-generic

Talvez só avisar que se o kernel for >= 4.19 usar o nf_conntrack ao invés do nf_conntrack_ipv4;

Só isso mesmo obrigado.

Erro ao fazer o pull das imagens do kubernetes

Após instalação dos kubelet kubeadm kubectl e antes de fazer a inicialização do cluster. Ao efetuar o pull das imagens que são utilizadas.
#sudo yum install -y kubelet kubeadm kubectl

Exibe a seguinte mensagem de erro:
#sudo kubeadm config images pull
failed to pull image "k8s.gcr.io/kube-apiserver:v1.24.2": output: E0709 16:26:34.764278 2451 remote_image.go:218] "PullImage from image service failed" err="rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.ImageService" image="k8s.gcr.io/kube-apiserver:v1.24.2"
time="2022-07-09T16:26:34Z" level=fatal msg="pulling image: rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.ImageService"
error: exit status 1

A correção foi após habilitar a configuração do systemd_cgroup.

cat > /etc/containerd/config.toml <<EOF
[plugins."io.containerd.grpc.v1.cri"]
systemd_cgroup = true
EOF
systemctl restart containerd

Dia 4 - Ajustar comando

Jeferson,
na criação do usuário para o K8S, o comando abaixo não localiza o arquivo .key (DIA 4)

Existe algum passo anterior ?

Agora setando as confs de user e key:

kubectl config set-credentials linuxtips --client-certificate=linuxtips.crt --client-key=linuxtips.key --embed-certs --kubeconfig=linuxtips-config

Ebook

Hey todos,
eu gerei um eBook do conteudo disponivel aqui.
Eu tenho minhas dúvidas sobre o quão interessante e, também, da opnião dos autores sobre essa iniciativa. Se todos os autores concordarem e não infrigir nenhum termo legal, posso criar um Pull Request com o projeto para se gerar o arquivo epub aqui nesse repositório.

WDYT?

Update Spanish translation

After Jeferson's updates on original PT text, it's necessary to update not only the new files but also SUMMARY and proceed with a translation review on each file changed by Jeferson. Also, I detected some "HEAD" text in DAY-7 and DAY-8 README files that must be fixed.
I will make all the necessary modifications to the ES folder, sub-folders, and files.

Fix day_two conceito de Pod

Acho que conceito de pod existe um erro de concordância na linha 47.

O Pod, por poder possuir diversos contêineres, muitas das vezes se assemelha a uma VM, onde você poderia ter diversos serviços rodando compartilhando o mesmo IP e demais recursos.

Acho que ficaria melhor:

Pod, é um grupo de um ou mais contêineres em execução, muitas das vezes se assemelha a uma VM, onde você poderia ter diversos serviços rodando compartilhando o mesmo IP e demais recursos.

@badtuxx cara como faço pra contribuir com projeto?
Estou fazendo o curso uncomplicated-k8s venho lendo o livro descomplicando k8s acho q consigo subir alguma PRs de melhoria.
@vaiiiii

Migrar para Honkit

Para uma melhor experiência durante a leitura, seria interessante seguir o DescomplicandoDocker e começar a utilizar o Honkit.

Formatação de parágrafos

Hoje na documentação os parágrafos estão soltos em linhas únicas.
Podemos realizar a modificação dos parágrafos para linhas contíguas?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.