• Kaniko (rootless para CI/CD no Kubernetes)
  • Buildah
  • img

NOTA: Em construção.

NOTA: Em construção.

NOTA: Em construção.

  • Desenho de processo
    • Necessidades da aplicação (código)
    • Sem ferramentas
    • Do commit na máquina do dev até produção
    • Testes
    • Qualidade
    • Burocracias (GMUD)
    • Rollback
  • Times
    • Dev
    • QA
    • Sec
    • Ops
  • Versus
    • Continuous Integrations + Continuous Delivery
    • Continuous Integrations + Continuous Deployment
    • Continuous Integrations + GitOps
  • Pontos chave
    • Intervenção humana, sim ou não?
    • Declarativo vs imperativo
    • Automação
    • Adminstração
    • Escala
    • Monitoramento
    • Notificação

Focado em desenvolvimento

  • Skaffold
  • Tilt
  • Telepresence
  • Garden

Kubernetes local

  • Minikube
  • MicroK8S
  • Kind
  • Minishift
  • CRC (Openshift 4.X)

NOTA: Ver também Distribuições do Kubernetes.

TILs

  • Awesome lists, é uma lista com diversas informações sobre um determinado tópico, curada pela comunidade.

Significado

Hoje eu aprendi vem de TIL, uma abreviação de Today I Learned.

Relações

  • Database = Database
  • Table = Collection
  • Row = Document

NOTA: Em construção.

Criar usuário

CREATE USER 'jeffrey'@'host' IDENTIFIED BY 'password';

NOTA: O wildcard % pode ser usado para permitir a conexão vinda de qualquer host.

Permitir acesso de leitura e escrita somente uma tabela

GRANT INSERT,DELETE,SELECT,UPDATE ON database.table TO 'username'@'host';

Referências

Extensões

  • Elasticsearch Security
  • Zeek
  • Wazuh
  • HELK
  • Dsiem
  • S1EM
  • Pfelk
  • SIAC

Check REST API

export ENDPOINT=localhost:9200
curl -X GET "$ENDPOINT/_cluster/health?wait_for_status=yellow&timeout=50s&pretty"
curl -X GET "$ENDPOINT/_cluster/stats?human&pretty"
curl -X GET "$ENDPOINT/_cluster/pending_tasks"
curl -X GET "$ENDPOINT/_nodes"
curl -X GET "$ENDPOINT/_nodes/stats"
curl -X GET "$ENDPOINT/_cluster/settings?include_defaults=true&flat_settings=true"

Referências

  • cerebro
  • elasticsearch-head
  • elastic-hq

CNI (open source)

  • Flannel
  • Canal
  • Project Calico
  • Weave
  • Contiv Networking
  • SR-IOV
  • Cilium
  • Infoblox
  • Multus
  • Romana
  • CNI-Genie
  • Nuage CNI
  • Silk
  • Linen
  • Vhostuser
  • Amazon ECS CNI Plugins
  • Bonding CNI
  • ovn-kubernetes
  • Knitter
  • DANM
  • cni-route-override
  • Terway
  • Cisco ACI CNI
  • Kube-OVN
  • Project Antrea
  • OVN4NFV-K8S-Plugin
  • Azure CNI

Referência

Distribuições (open source)

  • AgoraKube
  • Airship
  • EKS-D
  • AKS
  • Canonical
  • Flant Deckhouse
  • Flexkube
  • Fury
  • K0S
  • K3S
  • KubeCube
  • Kubermatic
  • Kubesphere
  • Kubic
  • Kurl
  • MetalK8S
  • MicroK8S
  • OpenNESS
  • Rancher
  • OpenShift
  • RKE Gov
  • Typhoon
  • Vcluster
  • Tanzu
  • Talos

NOTA: Kubernetes (geralmente via kubeadm), Cloud (AKS/EKS/GKE), Rancher e OpenShift são os mais comuns de se encontrar no mercado.

Instaladores (open source)

  • EKS Anywhere
  • Cybozu
  • Gardener
  • Kops
  • Kubeasz
  • Kubekey
  • KubeOperator
  • Kubeone
  • Kubespray
  • Magnum
  • Rancher
  • Symplegma
  • VanillaStack
  • Kubeadm

Referência


Ingress Controller (open source)

  • AKS Application Gateway Ingress Controller
  • Ambassador
  • Apache APISIX
  • Contour
  • Gloo
  • HAProxy
  • Istio
  • Kong
  • NGINX
  • Skipper
  • Traefik
  • Tyk
  • Voyager
  • EnRoute

Referência

Busca via conteúdo (Full Index)

Se você precisar efetuar uma busca com base no conteúdo dos logs:

  • Elasticsearch + Agente + Kibana
  • Graylog + Agente

NOTA: O Graylog utiliza o ElasticSearch por debaixo dos panos e entrega uma UI propria no lugar do Kibana.

Busca via filtros/rótulos (Metadata Index)

Se você pode efetuar buscas somente com base em labels (similar ao Prometheus):

  • Loki + Agente + Grafana

Agentes (log forwarder/shipper/aggregator)

  • Fluentd
  • Fluentbit
  • Logstash
  • Beats
  • Vector
  • Promtail
  • Grafana Agent
  • Elastic Agent

Serverless no Kubernetes

  • Knative
  • OpenFaaS
  • Kubeless
  • OpenWhisk

Service Mesh (open source)

  • Linkerd
  • Istio
  • Consul
  • Kuma
  • Traefik Mesh
  • Apache ServiceComb
  • Open Service Mesh
  • Network Service Mesh
  • Gloo Mesh

NOTA: A maior parte dessas ferramentas se baseia no Envoy Proxy para funcionar.

NOTA2: Vale a pena dar uma olhada no Service Mesh Interface (SMI)

Referência

  • Ingress/API Gateway: Kong

  • Service Mesh: Linkerd

  • Monitoramento: Prometheus + Grafana + Thanos

  • Logging: Loki + Fluentd + Grafana

NOTA: Caso exista a necessidade de full index, Elasticsearch + Fluentd + Kibana.

Para os possíveis agentes em ambos cenários consultar Logging.

  • Tracing: Jaeger

NOTA: Elasticsearch também pode ser usado, além do Grafana Tempo para ter um unico ponto de visualização, no Kibana ou Grafana.

  • Serverless: Knative

  • CNI: Cilium

  • Bootstrap: Terraform (Cloud) ou Kubeadm (on premise)

  • GitOps: Flux (infra) / ArgoCD (app)

  • Compliance: Kyverno

NOTA: Se seu ambiente for híbrido, o OPA pode ser mais interessante, já que o Kyverno é focado no Kubernetes.

  • Segurança: Falcon + Clair/Trivy + Sigstore Cosign

  • Análise: Popeye + Kubescape + Kubebench + Kubehunter

  • Storage: Implementação da Cloud ou Longhorn ou Rook (Ceph)

  • Backup: Velero


CLI

  • kubectl
  • kubens/kubectx
  • K9S

NOTA: Para outras ferramentas CLI úteis, consultar Minha stack de K8S.

GUI / WebUI

  • Octant
  • Lens

AWS

DistribuiçãoUsuário
Amazon Linux 2ec2-user
RHELec2-user ou root
Debianadmin
CentOScentos
Ubuntuubuntu

Referencias

Criando chaves no formato ed25519 de forma semi interativa, com os devidos comentários e separados por serviço:

for i in id_ed25519 github gitlab; do ssh-keygen -t ed25519 -o -a 100 -f $i -C "$(whoami)@$(hostname) - $i"; done;

Explicação:

  • for i in x y z - Define o nome das nossas chaves, para cada item aqui o for vai repetir os comandos de criação definidos até done.
  • ssh-keygen - Utilitário de geração de chaves do OpenSSH.
  • -t ed25519 - Define o tipo da chave com ed25519.
  • -o -a 100 - Define o número de rounds que a chave irá ter.
  • -f <span class="katex-inline">i - Gera a chave com o nome definido no for.
  • -C "</span>(whoami)@$(hostname) - $i" - Gera a chave com um comentário, vinculando seu usuário, maquina atual e nome da chave.

NOTA: O ssh-keygen irá perguntar se desejar definir uma senha para as chaves em questão.

Alguns serviços mais antigos podem não aceitar uma chave ed25519, logo rsa seria a alternativa mais viável, para isso mude o one-liner para algo similar a isso:

ssh-keygen -t rsa -b 4096 -o -a 100 -f $i -C "$(whoami)@$(hostname) - $i"

Além disso, garanta uma senha nas suas chaves, isso permite que a carregue com segurança mesmo em dispositivos não criptografados.

NOTA: Fique atento caso receba o erro de permission denied durante uma tentativa de acesso SSH, pode ter a ver com a versão do seu cliente SSH versus o do servidor, ative o modo verbose com -v, é provável que o erro seja do tipo no mutual signature algorithm (exemplo https://www.ibm.com/support/pages/ibm-aix-sendpubkeytest-no-mutual-signature-algorithm-0)

Referência

O que é?

Vulnerabilidade numa biblioteca de logging amplamente presente no ecossistema Java.

Vulnerabilidade

Atualmente possui 4 CVEs vinculadas ao mesmo em 2021, são elas:

Sendo que a primeira (CVE-2021-44228) é uma CVE de nível crítico e as outras são "extensões" em torno dela que variam no nível de criticidade.

Funcionamento

Como o exploit base funciona:

Lunasec - CVE-2021-44228

Mitigação

Existem atualmente 4 metodos para mitigar a CVE mais critica (CVE-2021-44228):

  1. Upgrade do Log4j para o 2.17.1 (resolve todas as CVEs até o momento)
  2. Habilitar a opção log4j2.formatMsgNoLookups=true (Config na JVM ou variável de ambiente)
  3. JNDI Hotpatch (exemplo AWS]
  4. Remoção da classe (jar) afetada

Sendo que dessas, a mais indicada é o upgrade, afim de eliminar a chance de ser atacado.

Referências

Olá mundo!

Bem-vindo a minha wiki, knowledge base (KB) e amontoado de notas!

A ideia aqui é compartilhar meu conhecimento, usar como referência no dia a dia e de companhia para coisas que não se encaixam no meu blog.

Aqui tem um pouquinho de tudo de TI, tentando trazer tudo em português, com foco em desenvolvimento e operações, sobretudo possuindo um ponto de vista de software livre (já adianto que você não irá encontrar conteúdo sobre coisas proprietárias aqui 😛) e de build (vs buy).

Infraestrutura

Atualmente esta wiki está utilizando o mdzk (baseado no mdbook) com o tema basalt do @ratsclub, versionado no Git e atualmente hospedado no Vercel e Gitlab.