archives

Curadoria pantaneira especial, só pra você :)


Este post é atualizado regularmente, volte para conferir as novidades.

Os sites gringos que eu gosto e uso para me manter informado sobre tecnologia:

Sobre Hardware

Gadgets

Android

Apple

Sobre empresas de tech, startups e investimentos

Sobre Security

Sobre Cloud Native

Sobre DevOps

Sobre Cultura Digital

Sobre humor geek

Blogs

Menções honrosas

Mas Guto, e no br, tb tem? Tem!

Games e Tech

Mandem suas sugestões nos comentários! ;)

[s]
Guto

--- 

Este post usa a tag #FalaGutera, entenda aqui.

Se gostou manda um alo no twitter @gutocarvalho.


Gostou do conteúdo?

Você também me encontra nessas redes!

Mastodon

@gutocarvalho@bolha.us

PixelFed

@gutocarvalho@bolha.photos

Lemmy

@gutocarvalho@bolha.forum

WriteFreely

@gutocarvalho@bolha.blog @notamental@bolha.blog @poesias@bolha.blog @contos@bolha.blog

Bookwyrm

@gutocarvalho@bolha.review

Peertube

@gutocarvalho@bolha.tube

Friendica

@gutocarvalho@bolha.network

Quer saber mais sobre mim?

Visite meus sites!

E meus blogs:

Conhece o Coletivo Bolha?

Então vem conhecer o bolha.io ou bolhaverso!

Nós temos muito mais para compartilhar contigo!

Quer apoiar nosso trabalho? Você pode!

Te vejo no mastodon da bolha.us!

[s]

Bora falar um pouco sobre esse Buzz do GitHub e seu código de uso.


Do ponto de vista do GitHub e de suas letras miúdas, provavelmente nada em sua vida vai mudar muito, isso já é assim desde que o github é github, contudo, podemos fazer uma reflexão – leve – sobre esse assunto.

Tanto GitHub, quanto GitLab, quanto Bitbucket são mantidos por empresas privadas que tem em suas entrelinhas do "código de uso" coisas como "temos o direito de usar seu código como bem entendermos, bacana?".

Não existe almoço grátis, já dizia o ditado. Eles não cobram pelo uso, mas em troca damos métricas, dados de nosso comportamento e diversas informações muito valiosas para GitHub/GitLab/Bitbucket e seus parceiros, seja para uso direto ou indireto.

Além do acesso ao código, eles podem fechar sua conta, caso entendam que precisam fazer isso e você não pode fazer muito, afinal é uma empresa privada, a decisão final é deles.

E agora?

Agora que você tem ciência – pelo menos de um parágrafo – do código de uso, talvez devesse ler tudo, talvez não – caso queria paz de espírito, alguns dizem que ignorância pode ser uma benção em certos casos. 

De qualquer forma, a partir de agora, você pelo menos estará usando o GitHub e similares de forma mais consciente.

O que poderia ser feito para melhorar?

Eu acho que alguma entidade poderia criar uma fundação para prover um serviço de hospedagem de código de projetos open source, sem fins lucrativos. Poderia rodar até mesmo o GitLab CE, quem sabe.

A ideia aqui é que fosse mantido pela fundação, com apoio de membros e parceiros, com isso poderíamos ter o GitHub, GitLab e Bitbucket bancando financeiramente a operação e ajudando a padronizar as coisas referentes ao Git, versionamento e quem sabe até padronizar CI e CD.

A linuxfoundation.org é uma fundação que poderia fazer isso, eu acho que seria a fundação mais experiente e adequada visto o bom case da CNCF, CDF e outras fundações e projetos abaixo dela.

Vale lembrar que a linuxfoundation.org já mantém projetos como o kubernetes, letsencrypt, nodejs, cert-manager, ceph, electron e tantos outros.

Acho que eles teriam capacidade de mater esse serviço em escala global, obviamente com apoio financeiro dos gigantes da informática, afinal eles tem que dar algum retorno para a comunidade.

Uma alternativa a linuxfoundation.org seria a fundação Apache, que também é bastante sólida.

São meus 50 cents nesse assunto.

Durma em paz :)

[s]
Guto

--- 

Este post usa a tag #FalaGutera, entenda aqui.

Se gostou manda um alo no twitter @gutocarvalho.


Gostou do conteúdo?

Você também me encontra nessas redes!

Mastodon

@gutocarvalho@bolha.us

PixelFed

@gutocarvalho@bolha.photos

Lemmy

@gutocarvalho@bolha.forum

WriteFreely

@gutocarvalho@bolha.blog @notamental@bolha.blog @poesias@bolha.blog @contos@bolha.blog

Bookwyrm

@gutocarvalho@bolha.review

Peertube

@gutocarvalho@bolha.tube

Friendica

@gutocarvalho@bolha.network

Quer saber mais sobre mim?

Visite meus sites!

E meus blogs:

Conhece o Coletivo Bolha?

Então vem conhecer o bolha.io ou bolhaverso!

Nós temos muito mais para compartilhar contigo!

Quer apoiar nosso trabalho? Você pode!

Te vejo no mastodon da bolha.us!

[s]

Clique aqui para saber mais!


Eu sou Cloud Engineer ou Cloud Native Engineer, quanto deveria cobrar a hora de um projeto?

Me fazem essa pergunta todos os dias, vamos ver se esse post consegue ajudar.

Essa é uma questão complicada, depende de sua experiência e currículo.

Mas se fosse para colocar uma base, seria parecido com isso.

Cloud Engineer (aws, gcp, azure)

  • Profissional com 2+ anos de EXP: R$ 120,00
  • Profissional com 4+ anos de EXP: R$ 220,00
  • Profissional com 6+ anos de EXP: R$ 320,00

Cloud Native Engineer + DevOps Experience (k8s+cicd+iac)

  • Profissional com 2+ anos de EXP: R$ 180,00
  • Profissional com 4+ anos de EXP: R$ 280,00
  • Profissional com 6+ anos de EXP: R$ 380,00

Quando é por hora e quando é projeto com valor fechado?

Passou de 40 horas você pode considerar um projeto "porteira fechada". Mas lembre-se, no seu cálculo pessoal, sua estimativa continua em horas, contudo você pode combinar um preço mais atrativo para fechar o projeto com o cliente e combinar um prazo adequado para entregar, com boa gordura.

Amarrando as pontas

Isso aí é o justo na minha humilde opinião, de resto dependerá muito do seu currículo, cases que participou, soft skills, hard skills, parta daí e combine o melhor que puder.

Se o contratante faz questão do atendimento presencial, adicione pelo menos 25-30% na proposta para cobrir combustível (7 reais o litro), seu tempo no trânsito, comer fora, dentre outras questões.

Se for em outra cidade, todas as despesas de deslocamento aéreo e terrestre, hospedagem e alimentação são por conta do contratante, e mantenha o 25-30% de margem para atender presencial, mesmo assim, especialmente em outra cidade.

Atualizações sobre valores estimados

- 2022-01-07: Primeira versão

[s]
Guto

---

Este post usa a tag #FalaGutera, entenda aqui.

Se gostou manda um alo no twitter @gutocarvalho.


Gostou do conteúdo?

Você também me encontra nessas redes!

Mastodon

@gutocarvalho@bolha.us

PixelFed

@gutocarvalho@bolha.photos

Lemmy

@gutocarvalho@bolha.forum

WriteFreely

@gutocarvalho@bolha.blog @notamental@bolha.blog @poesias@bolha.blog @contos@bolha.blog

Bookwyrm

@gutocarvalho@bolha.review

Peertube

@gutocarvalho@bolha.tube

Friendica

@gutocarvalho@bolha.network

Quer saber mais sobre mim?

Visite meus sites!

E meus blogs:

Conhece o Coletivo Bolha?

Então vem conhecer o bolha.io ou bolhaverso!

Nós temos muito mais para compartilhar contigo!

Quer apoiar nosso trabalho? Você pode!

Te vejo no mastodon da bolha.us!

[s]

Clique aqui para saber mais!


Quanto deveria ganhar um DevOps Engineer ou Cloud Engineer?

Me fazem essa pergunta todos os dias, vamos ver se esse post consegue ajudar.

Essa é uma questão complicada, depende da experiência da pessoa e do currículo.

Mas se fosse para colocar uma base, seria parecido com isso.

Cloud Engineer (aws, gcp, azure)

CLT

  • Cloud Engineer Trainee, R$ 2.500,00 ( pegar para ensinar )
  • Cloud Engineer 1, R$ 4.500,00 ( 2 anos de exp comprovada )
  • Cloud Engineer 2, R$ 9.000,00 ( 4 anos de exp comprovada )
  • Cloud Engineer 3, R$ 13.000,00 ( 6+ anos de exp comprovada )

PJ (CLT*1,5)

  • Cloud Engineer Trainee, R$ 3.750,00 ( pegar para ensinar )
  • Cloud Engineer 1, R$ 6.750,00 ( 2 anos de exp comprovada )
  • Cloud Engineer 2, R$ 13.500,00 ( 4 anos de exp comprovada )
  • Cloud Engineer 3, R$ 19.500,00 ( 6+ anos de exp comprovada )

Cloud Native Engineer + DevOps Exp (k8s+cicd+iac)

CLT

  • Cloud Native Eng Trainee, R$ 2.500,00 ( pegar para ensinar )
  • Cloud Native Eng 1, R$ 5.000,00 ( 2 anos de exp comprovada )
  • Cloud Native Eng 2, R$ 10.000,00 ( 4 anos de exp comprovada )
  • Cloud Native Eng 3, R$ 15.000,00 ( 6+ anos de exp comprovada )

PJ (CLT*1,5)

  • Cloud Native Engineer Trainee, R$ 3.750,00 ( pegar para ensinar )
  • Cloud Native Eng 1, R$ 7.500,00 ( 2 anos de exp comprovada )
  • Cloud Native Eng 2, R$ 15.000,00 ( 4 anos de exp comprovada )
  • Cloud Native Eng 3, R$ 22.000,00 ( 6+ anos de exp comprovada )

Amarrando as pontas

Isso aí é o justo na minha humilde opinião, de resto dependerá muito do seu currículo, cases que participou, soft skills, hard skills, parta daí e combine o melhor que puder.

No caso do CLT, combine ainda um custeio de sua internet e setup do home office, tal como uma cadeira maneira, um bom microfone e webcam :)

No caso do PJ lembre-se de negociar alguns dias pagos, pelo menos 20, para você poder descansar de vez em quando.

O que você tem que entender e enxergar é o valor que você agrega ao projeto e ao cliente, sempre pense nisso e se valorize.

Atualizações sobre valores estimados

- 2022-01-07: Primeira versão

[s]
Guto

---

Este post usa a tag #FalaGutera, entenda aqui.

Se gostou manda um alo no twitter @gutocarvalho.

 


Gostou do conteúdo?

Você também me encontra nessas redes!

Mastodon

@gutocarvalho@bolha.us

PixelFed

@gutocarvalho@bolha.photos

Lemmy

@gutocarvalho@bolha.forum

WriteFreely

@gutocarvalho@bolha.blog @notamental@bolha.blog @poesias@bolha.blog @contos@bolha.blog

Bookwyrm

@gutocarvalho@bolha.review

Peertube

@gutocarvalho@bolha.tube

Friendica

@gutocarvalho@bolha.network

Quer saber mais sobre mim?

Visite meus sites!

E meus blogs:

Conhece o Coletivo Bolha?

Então vem conhecer o bolha.io ou bolhaverso!

Nós temos muito mais para compartilhar contigo!

Quer apoiar nosso trabalho? Você pode!

Te vejo no mastodon da bolha.us!

[s]

Conheça algumas ferramentas interessantes para seu k8s toolkit


Uma curadoria pessoal de ferramentas para k8s

Essa página é atualizada regularmente, volte para ver as novidades!

shell

  • https://github.com/cloudnativelabs/kube-shell'
  • https://github.com/jonmosco/kube-ps1

port forwarding

  • https://github.com/txn2/kubefwd
  • https://www.electronjs.org/apps/kube-forwarder

autoscaling

  • https://github.com/aws/karpenter
  • https://github.com/kedacore/keda

namespace and cluster switch (cli)

  • https://github.com/ahmetb/kubectx
  • https://github.com/sbstp/kubie

kubeconfig manager

  • https://github.com/sunny0826/kubecm
  • https://github.com/bitnami-labs/kubectl-import

resources view (web)

  • https://github.com/FairwindsOps/goldilocks
  • https://github.com/stevelacy/kuberhaus

resources view realtime (cli)

  • https://github.com/pulumi/kubespy

backup for production (config and volumes)

  • https://velero.io

backup etcd

  • https://github.com/gardener/etcd-backup-restore

backup on git (yaml manifests)

  • https://github.com/bpineau/katafygio

etcd management

  • https://github.com/gtamas/etcdmanager
  • https://github.com/kopeio/etcd-manager

logs (cli)

  • https://github.com/johanhaleby/kubetail
  • https://github.com/boz/kail
  • https://github.com/wercker/stern

monitoring (cli)

  • https://github.com/astefanutti/kubebox

monitoring (web)

  • https://github.com/hjacobs/kube-ops-view

monitoring tools

  • https://www.weave.works/oss/scope
  • https://prometheus.io
  • https://grafana.com/oss/grafana

monitoring tools for prometheus

  • https://github.com/cortexproject
  • https://github.com/thanos-io/thanos

monitoring prometheus stack

  • https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack

log system

  • https://github.com/grafana/loki
  • https://github.com/fluent/fluentd

cli dashboard

  • https://github.com/derailed/k9s

secrets

  • https://github.com/bitnami-labs/sealed-secrets
  • https://github.com/Shopify/ejson
  • https://github.com/mfuentesg/ksd

mobile dashboard

  • https://github.com/bitnami-labs/cabin

chaos test

  • https://github.com/asobti/kube-monkey
  • https://github.com/linki/chaoskube
  • https://github.com/powerfulseal/powerfulseal

load test

  • https://github.com/mrahbar/k8s-testsuite
  • https://github.com/grafana/k6-operator

notifiers

  • https://github.com/bitnami-labs/kubewatch
  • https://github.com/searchlight/searchlight
  • https://github.com/sukeesh/k8s-job-notify
  • https://github.com/infracloudio/botkube

web-cli

  • https://github.com/kubernetes-sigs/kui

desktop

  • https://github.com/lensapp/lens
  • https://github.com/kubenav/kubenav
  • https://github.com/skippbox/skippbox

linter & validators

  • https://github.com/instrumenta/kubeval
  • https://github.com/stackrox/kube-linter
  • https://github.com/zegl/kube-score
  • https://github.com/yannh/kubeconform

web dashboard

  • https://github.com/kubernetes/dashboard
  • https://github.com/rancher/rancher

web dashboard (promissores)

  • https://github.com/kubevious/kubevious
  • https://github.com/vmware-tanzu/octant

web dashboard (novos projetos para acompanhar)

  • https://github.com/skooner-k8s/skooner
  • https://github.com/jeremykross/konstellate
  • https://github.com/smpio/kubernator

ci/cd system

  • https://github.com/fluxcd/flux
  • https://github.com/argoproj/argo-cd
  • https://github.com/werf/werf
  • https://github.com/tektoncd/operator

quality

  • https://github.com/keptn/keptn

ci/cd tool

  • https://githubhelp.com/alexcurtin/kubernetes-deploy

developer

  • https://github.com/tilt-dev/tilt

kubernetes local

  • https://github.com/rancher/k3d
  • https://github.com/kubernetes/minikube
  • https://github.com/kubernetes-sigs/kind
  • https://github.com/ubuntu/microk8s

kubernetes installers

  • https://github.com/kubernetes/kops
  • https://github.com/kubernetes-sigs/kubespray
  • https://rancher.com/products/rke

kubernetes distros

  • https://rancher.com/products/rke
  • https://github.com/kubernetes/kubeadm

kubernetes light distros

  • https://github.com/k3s-io/k3s
  • https://github.com/k0sproject/k0s

security (cli)

  • https://github.com/aquasecurity/kube-bench
  • https://github.com/aquasecurity/kube-hunter
  • https://github.com/aquasecurity/kubectl-who-can
  • https://github.com/aquasecurity/trivy
  • https://github.com/armosec/kubescape

cluster sanitizer

  • https://github.com/FairwindsOps/Pluto
  • https://github.com/derailed/popeye

service proxy

  • https://github.com/envoyproxy/envoy
  • https://github.com/projectcontour/contour
  • https://github.com/traefik/traefik
  • https://github.com/nginx/nginx

storage (block)

  • https://github.com/longhorn/longhorn
  • https://github.com/openebs/openebs

storage (object)

  • https://github.com/minio/minio

service mesh

  • https://github.com/linkerd/linkerd2
  • https://github.com/istio/istio
  • https://github.com/hashicorp/consul

packages

  • https://github.com/helm/helm
  • https://github.com/kubernetes-sigs/kustomize/
  • https://github.com/buildpacks/pack

container register

  • https://github.com/goharbor/harbor
  • https://github.com/quay/quay

database

  • https://github.com/ongres/stackgres
  • https://github.com/CrunchyData/postgres-operator
  • https://github.com/vitessio/vitess

api gateway

  • https://github.com/emissary-ingress/emissary
  • https://github.com/Kong/kong

kubernetes history dashboard

  • https://github.com/salesforce/sloop

troubleshooting

  • https://github.com/aylei/kubectl-debug

tracing and telemetry

  • https://github.com/jaegertracing/jaeger
  • https://github.com/open-telemetry
  • https://github.com/opentracing
  • https://grafana.com/oss/tempo

serverless

Este post é do tipo #MindNotes, entenda aqui.

[s]
Guto

---

Se gostou manda um alo no twitter @gutocarvalho.


Gostou do conteúdo?

Você também me encontra nessas redes!

Mastodon

@gutocarvalho@bolha.us

PixelFed

@gutocarvalho@bolha.photos

Lemmy

@gutocarvalho@bolha.forum

WriteFreely

@gutocarvalho@bolha.blog @notamental@bolha.blog @poesias@bolha.blog @contos@bolha.blog

Bookwyrm

@gutocarvalho@bolha.review

Peertube

@gutocarvalho@bolha.tube

Friendica

@gutocarvalho@bolha.network

Quer saber mais sobre mim?

Visite meus sites!

E meus blogs:

Conhece o Coletivo Bolha?

Então vem conhecer o bolha.io ou bolhaverso!

Nós temos muito mais para compartilhar contigo!

Quer apoiar nosso trabalho? Você pode!

Te vejo no mastodon da bolha.us!

[s]

Nota mental para verificar a idade e o autor de uma branch.


Checando quando uma branch foi criada

Para verificar quando uma branch foi criada

$ git for-each-ref --sort=authordate --format '%(authordate:iso) %(align:left,25)%(refname:short)%(end) %(subject)' refs/heads

exemplo saída

2021-11-18 09:54:39 -0500 production                Added bugsnag configuration
2022-01-05 14:35:47 -0300 dockerize                 Added shipit production config

Checando quem criou cada branch

$ git for-each-ref --format='%(color:cyan)[data] %(authordate:format:%m/%d/%Y %I:%M %p) %(color:green) [branch] %(refname:short) %(align:25,left)%(color:yellow)[author] %(authorname)%(end) %(color:reset)%(refname:strip=3)' --sort=authordate refs/heads

exemplo de saída

[data] 11/18/2021 09:54 AM  [branch] production [author] Jose Augusto
[data] 01/05/2022 02:35 PM  [branch] dockerize [author] Guto Carvalho

Este post é do tipo #MindNotes, entenda aqui.

References

  • https://www.code-helper.com/answers/check-age-of-git-branch

[s]
Guto

---

Se gostou manda um alo no twitter @gutocarvalho.


Gostou do conteúdo?

Você também me encontra nessas redes!

Mastodon

@gutocarvalho@bolha.us

PixelFed

@gutocarvalho@bolha.photos

Lemmy

@gutocarvalho@bolha.forum

WriteFreely

@gutocarvalho@bolha.blog @notamental@bolha.blog @poesias@bolha.blog @contos@bolha.blog

Bookwyrm

@gutocarvalho@bolha.review

Peertube

@gutocarvalho@bolha.tube

Friendica

@gutocarvalho@bolha.network

Quer saber mais sobre mim?

Visite meus sites!

E meus blogs:

Conhece o Coletivo Bolha?

Então vem conhecer o bolha.io ou bolhaverso!

Nós temos muito mais para compartilhar contigo!

Quer apoiar nosso trabalho? Você pode!

Te vejo no mastodon da bolha.us!

[s]

Aprenda a organizar seu kubeconfig!


Qual a melhor forma de organizar múltiplos clientes e projetos para administrar seus clusters?

Sabemos que o kubectl precisa de um kubeconfig para funcionar, podemos apontar diretamente e executar algo

$ kubectl --kubeconfig=arquivo_de_config get nodes

Podemos usar também a variável kubeconfig

$ export KUBECONFIG=/caminho/para/arquivo/config
$ kubect get nodes

E como eu faço para dar conta de gerenciar dezenas de projetos e clientes?

Eu uso o kubectx + kubens + fzf + kubectl-import, falaremos disso a frente :)

Primeira coisa que você tem que pensar é que um único arquivo de kubeconfig é suficiente para todos os seus projetos, inclusive o arquivo foi pensado para ter diferentes contextos.

Primeiro vamos entender como funciona esse arquivo e seus contextos.

Entendendo contextos

Veja um exemplo simples de arquivo de configuração do kubectl com diferentes contextos

apiVersion: v1
kind: Config
preferences: {}

clusters:
- cluster:
  name: prd
- cluster:
  name: dev
- cluster:
  name: tst
- cluster:

  
users:
- name: engineers
- name: developers
- name: testers

contexts:
- context:
  name: production-cluster
    user: name
    cluster: prd
- context:
  name: dev-cluster
    user: name
    cluster: dev
- context:
  name: test-cluster
    user: name
    cluster: tst

Agora vamos aprender a criar esse arquivo passo a passo.

Adicionando clusters

Adicionando cluster prd com certificado CA

 $ kubectl config --kubeconfig=config set-cluster projeto-prd --server=https://192.168.222.80 --certificate-authority=prd-cert-file

Adicionando cluster dev com certificado CA

 $ kubectl config --kubeconfig=config set-cluster projeto-dev --server=https://172.16.31.20 --certificate-authority=dev-cert-file

Adicionando cluster tst e ignorando o certificado

 $ kubectl config --kubeconfig=config set-cluster projeto-tst --server=https://10.200.3.90 --certificate-authority=tst-ca-file

Adicionando usuários

Adicionando usuário para engenheiros com certificado

$ kubectl config --kubeconfig=config set-credentials engineers --client-certificate=eng-cert-file --client-key=eng-key-file

Adicionando usuário para desenvolvedores com certificado

$ kubectl config --kubeconfig=config set-credentials developers --client-certificate=dev-cert-file --client-key=dev-key-file

Adicionando usuário para testadores com user/senha

$ kubectl config --kubeconfig=config set-credentials testers --username=admin --password=password

Adicionando contextos

Adicionando contexto para cluster de produção com usuário engineers

$ kubectl config --kubeconfig=config set-context cluster-projeto-prd --cluster=projeto-prd --user=engineers

Adicionando contexto para cluster de desenvolvimento com usuário developer

$ kubectl config --kubeconfig=config set-context cluster-projeto-dev --cluster=projeto-dev --user=developers

Adicionando contexto para cluster de teste com usuário testers

$ kubectl config --kubeconfig=config set-context cluster-projeto-tst --cluster=projeto-tst --user=testers

Verificando arquivo

Leia o arquivo

$ cat config

Agora você provavelmente tem um arquivo como esse, acredito que a única diferença para o seu é que eu coloquei o kind e preferences no topo.

apiVersion: v1
kind: Config
preferences: {}
clusters:
- cluster:
    certificate-authority: dev-cert-file
    server: https://172.16.31.20
  name: projeto-dev
- cluster:
    certificate-authority: prd-cert-file
    server: https://192.168.222.80
  name: projeto-prd
- cluster:
    certificate-authority: tst-ca-file
    server: https://10.200.3.90
  name: projeto-tst
contexts:
- context:
    cluster: projeto-dev
    user: developers
  name: cluster-projeto-dev
- context:
    cluster: projeto-prd
    user: engineers
  name: cluster-projeto-prd
- context:
    cluster: projeto-tst
    user: testers
  name: cluster-projeto-tst
current-context: ""
users:
- name: developers
  user:
    client-certificate: dev-cert-file
    client-key: dev-key-file
- name: engineers
  user:
    client-certificate: eng-cert-file
    client-key: eng-key-file
- name: testers
  user:
    password: password
    username: admin

Agora que os contextos foram configurados, podemos mudar de contexto assim.

$ kubectl config --kubeconfig=config use-context cluster-projeto-prd

E a partir daí qualquer comando do kubectl será realizado no cluster configurado nesse contexto.

$ kubeclt --kubeconfig=config get nodes

Exemplo de saída

k8s-prd-ctl-01      Ready    controlplane,etcd   6d1h   v1.21.7
k8s-prd-ctl-02      Ready    controlplane,etcd   6d1h   v1.21.7
k8s-prd-ctl-03      Ready    controlplane,etcd   6d1h   v1.21.7
k8s-prd-ctl-04      Ready    controlplane,etcd   6d1h   v1.21.7
k8s-prd-ctl-05      Ready    controlplane,etcd   6d1h   v1.21.7
k8s-prd-worker-01   Ready    worker              6d1h   v1.21.7
k8s-prd-worker-02   Ready    worker              6d1h   v1.21.7
k8s-prd-worker-03   Ready    worker              6d1h   v1.21.7
k8s-prd-worker-04   Ready    worker              6d1h   v1.21.7

Verificando a configuração do kubectl

Com o comando abaixo você verá a configuração completa

$ kubectl config --kubeconfig=config view

Verificando apenas do contexto que está configurado

É preciso usar o parâmetro minify para limitar ao contexto escolhido

$ kubectl config --kubeconfig=config view --minify

Saída

apiVersion: v1
clusters:
- cluster:
    certificate-authority: prd-cert-file
    server: https://192.168.222.80
  name: projeto-prd
contexts:
- context:
    cluster: projeto-prd
    user: engineers
  name: cluster-projeto-prd
current-context: cluster-projeto-prd
kind: Config
preferences: {}
users:
- name: engineers
  user:
    client-certificate: eng-cert-file
    client-key: eng-key-file

Observe a linha

current-context: cluster-projeto-prd

Sempre que alteramos de contexto essa linha será modificado no seu arquivo de configuração.

Existe algo mais prático para visualizar e trocar de contextos?

Sim, existe o projeto kubectx

  • https://github.com/ahmetb/kubectx

Instalando via brew

$ brew install kubectx

Rodando

$ kubectx

Ele vai te mostrar os contextos disponíveis

cluster-projeto-prd
cluster-projeto-dev
cluster-projeto-tst

Para escolher o contexto basta digitar

$ kubectx cluster-projeto-prd

E pronto!

Existe algo ainda mais fácil?

Sim, você pode utilizar o projeto fzf

  • https://github.com/junegunn/fzf

Instalando via brew

$ brew install fzf

Com ele o kubectx fica interativo, abre um menu e você seleciona o contexto.

$ kubectx

Saída

Consigo importar um kubeconfig?

Eu sei que ficar editando isso na mão dá um certo trabalho, mas tem solução. Recentemente eu encontrei o projeto kubectl-import para resolver essa questão.

  • https://github.com/bitnami-labs/kubectl-import

Instalando o projeto

 $ sudo curl -o kubectl-import https://raw.githubusercontent.com/bitnami-labs/kubectl-import/master/kubectl-import && chmod 0755 kubectl-import

Com ele você consegue pegar um kubeconfig e importar

 $ export KUBECONFIG=/caminho/pro/seu/kubeconfig
 $ ./kubectl-import kubeconfig-novo

E pronto, o novo cluster/contexto vai aparecer no seu kubectx. Recomendo editar o arquivo antes de importar, setando corretamente os nomes do cluster, user e contexto.

Tem algo parecido como kubectx só que para namespaces?

Tem sim, o projeto kubectx traz junto o kubens, aplicativo similar que serve para trocar de namespaces rapidamente de forma interativa, basta digitar

$ kubens

E escolher o namespace.

Amarrando as pontas

Espero que tenha aprendido a usar contextos do kubeconf, usar o kubectx, fzf, kubectl-import e agilizar a administração de seus clusters.

Esse post é o que eu chamo de DROPS, entenda o modelo aqui.

[s]
Guto

---

Se gostou manda um alo no twitter @gutocarvalho.


Gostou do conteúdo?

Você também me encontra nessas redes!

Mastodon

@gutocarvalho@bolha.us

PixelFed

@gutocarvalho@bolha.photos

Lemmy

@gutocarvalho@bolha.forum

WriteFreely

@gutocarvalho@bolha.blog @notamental@bolha.blog @poesias@bolha.blog @contos@bolha.blog

Bookwyrm

@gutocarvalho@bolha.review

Peertube

@gutocarvalho@bolha.tube

Friendica

@gutocarvalho@bolha.network

Quer saber mais sobre mim?

Visite meus sites!

E meus blogs:

Conhece o Coletivo Bolha?

Então vem conhecer o bolha.io ou bolhaverso!

Nós temos muito mais para compartilhar contigo!

Quer apoiar nosso trabalho? Você pode!

Te vejo no mastodon da bolha.us!

[s]

Eu uso o DISQUS, mas estou buscando alternativas open source!


Veja alguns sistemas de comentários open source interessantes

https://commento.io/

https://remark42.com/

https://posativ.org/isso/

https://github.com/phusion/juvia

https://github.com/jacobwb/hashover

https://github.com/schn4ck/schnack

https://github.com/xCss/Valine

https://github.com/commentics/commentics

https://github.com/vkuznecovas/mouthful

https://cusdis.com/

https://github.com/gitalk/gitalk

References

- https://ourcodeworld.com/articles/read/1265/top-7-best-open-source-self-hosted-comment-system-alternatives-to-disqus
- https://lisakov.com/projects/open-source-comments/
- https://www.findbestopensource.com/tagged/commenting-engine
- https://nestify.io/blog/11-best-disqus-alternatives-you-should-try

[s]
Guto


Gostou do conteúdo?

Você também me encontra nessas redes!

Mastodon

@gutocarvalho@bolha.us

PixelFed

@gutocarvalho@bolha.photos

Lemmy

@gutocarvalho@bolha.forum

WriteFreely

@gutocarvalho@bolha.blog @notamental@bolha.blog @poesias@bolha.blog @contos@bolha.blog

Bookwyrm

@gutocarvalho@bolha.review

Peertube

@gutocarvalho@bolha.tube

Friendica

@gutocarvalho@bolha.network

Quer saber mais sobre mim?

Visite meus sites!

E meus blogs:

Conhece o Coletivo Bolha?

Então vem conhecer o bolha.io ou bolhaverso!

Nós temos muito mais para compartilhar contigo!

Quer apoiar nosso trabalho? Você pode!

Te vejo no mastodon da bolha.us!

[s]

As vezes queremos ver os logs de todos os pods de um mesmo namespace, usando apenas o kubectl essa tarefa pode ser difícil, para isso podemos recorrer a ferramentas externas como o kubetail

Instalando via homebrew

$ brew tap johanhaleby/kubetail && brew install kubetail

Procurando por pods em um namespace

$ kubectl get pods -n project

Saída

NAME                   READY     STATUS    RESTARTS   AGE
api-backend-v1-aba8y   1/1       Running   0          1d
api-backend-v1-gc4st   1/1       Running   0          1d
api-backend-v1-m8acl   1/1       Running   0          6d
api-frontend-v31-s20d0 1/1       Running   0          1d
api-frontend-v31-9pbpn 1/1       Running   0          1d
api-frontend-v31-q74wg 1/1       Running   0          1d
database-v5-0fa8o      1/1       Running   0          3h
database-v5-yhren      1/1       Running   0          2h

Fazendo tail nos logs dos pods api-backend

$ kubetail api-backend -n project

Fazendo tail nos logs do primeiro container nos pods api-backend

$ kubetail api-backend -c container1 -n project

Fazendo tail nos logs do container 1 e 2 dos pods api-backend

$ kubetail api-backend -c container1 -c container2 -n project

Fazendo tail dos logs dos pods api-backend e api-frontend

$ kubetail api-backend,api-frontend -n project

Fazendo tail no que casar com a expressão regular abaixo

$ kubetail "^api|.*database.*" --regex -n project

Fazendo tail dos logs de todos os pods do namesapce project

$ kubetail -n project

References

---

Se gostou manda um alo no twitter @gutocarvalho.


Gostou do conteúdo?

Você também me encontra nessas redes!

Mastodon

@gutocarvalho@bolha.us

PixelFed

@gutocarvalho@bolha.photos

Lemmy

@gutocarvalho@bolha.forum

WriteFreely

@gutocarvalho@bolha.blog @notamental@bolha.blog @poesias@bolha.blog @contos@bolha.blog

Bookwyrm

@gutocarvalho@bolha.review

Peertube

@gutocarvalho@bolha.tube

Friendica

@gutocarvalho@bolha.network

Quer saber mais sobre mim?

Visite meus sites!

E meus blogs:

Conhece o Coletivo Bolha?

Então vem conhecer o bolha.io ou bolhaverso!

Nós temos muito mais para compartilhar contigo!

Quer apoiar nosso trabalho? Você pode!

Te vejo no mastodon da bolha.us!

[s]

Conhece o projeto ksd? Então vem conhecer!


Repo do projeto

- https://github.com/mfuentesg/ksd

Quando damos um get em um secret temos isso aqui

$ kubectl get secret <secret name> -o <yaml|json>

Saída

{
    "apiVersion": "v1",
    "data": {
        "password": "c2VjcmV0",
        "app": "a3ViZXJuZXRlcyBzZWNyZXQgZGVjb2Rlcg=="
    },
    "kind": "Secret",
    "metadata": {
        "name": "kubernetes secret decoder",
        "namespace": "ksd"
    },
    "type": "Opaque"
}

Quando usamos o ksd ele vira texto puro

$ kubectl get secret <secret name> -o <yaml|json> | ksd

Saída

{
    "apiVersion": "v1",
    "data": {
        "password": "secret",
        "app": "kubernetes secret decoder"
    },
    "kind": "Secret",
    "metadata": {
        "name": "kubernetes secret decoder",
        "namespace": "ksd"
    },
    "type": "Opaque"
}

Legal né?

[s]
Guto


Gostou do conteúdo?

Você também me encontra nessas redes!

Mastodon

@gutocarvalho@bolha.us

PixelFed

@gutocarvalho@bolha.photos

Lemmy

@gutocarvalho@bolha.forum

WriteFreely

@gutocarvalho@bolha.blog @notamental@bolha.blog @poesias@bolha.blog @contos@bolha.blog

Bookwyrm

@gutocarvalho@bolha.review

Peertube

@gutocarvalho@bolha.tube

Friendica

@gutocarvalho@bolha.network

Quer saber mais sobre mim?

Visite meus sites!

E meus blogs:

Conhece o Coletivo Bolha?

Então vem conhecer o bolha.io ou bolhaverso!

Nós temos muito mais para compartilhar contigo!

Quer apoiar nosso trabalho? Você pode!

Te vejo no mastodon da bolha.us!

[s]