GithubHelp home page GithubHelp logo

login_kubernetes's Introduction

Login no Kubernetes

APOIO

Criar o namespace

kubectl create namespace ecomerce;
kubectl get namespace;

Criar a PRIVATE KEY

openssl genrsa -out saulo.key 2048;
cat saulo.key;

Criar o CERTIFICATE REQUEST

openssl req -new -key saulo.key -subj "/CN=saulo" -out saulo.csr;
cat saulo.csr;

Converte o CERTIFICATE REQUEST para base64

cat saulo.csr | base64 | tr -d "\n";

Criar o manifesto

code k8s-csr.yaml;

Configuração do k8s-csr.yaml

apiVersion: certificates.k8s.io/v1
kind: CertificateSigningRequest
metadata:
  name: saulo
spec:
  request: [CERTIFICATE REQUEST em base64]
  signerName: kubernetes.io/kube-apiserver-client
  usages:
    - client auth

Apply

kubectl apply -f k8s-csr.yaml;

Vai dar msg de certificado criado

Verificar se foi criado. Vai estar como status(CONDITION) de Peddind

kubectl get csr;

Aprovar o certificado

kubectl certificate approve saulo;

Vai dar msg de certificado aprovado

Verificar se status(CONDITION). Vai estar de Approved,Ussued

kubectl get csr;

Pegar o .CRT em base64 e decodifcar

kubectl get csr saulo -o yaml;
echo "[CRT em base64]" | base64 --decode > saulo.crt;

Ou simplesmente rodar... (será que funciona msm? rsrs)

kubectl get csr saulo -o jsonpath='{.status.certificate}'| base64 --decode > saulo.crt;

config

Copiar o config local para o diretorio atual para usa-lo como base

cp ~/.kube/config ./kubeconfig-saulo.yaml;
code kubeconfig-saulo.yaml;
...
contexts:
- context:
    cluster: docker-desktop
    user: docker-desktop
  name: docker-desktop
current-context: docker-desktop
kind: Config
preferences: {}
users:
- name: docker-desktop
  user:
    client-certificate: ./saulo.crt
    client-key: ./saulo.key

-

Tentar listar os nodes usando o kubeconfig criado.

kubectl get nodes --kubeconfig kubeconfig-saulo.yaml;

Criou o usuario mas ele ainda não tem nenhuma permisão

Add permisões para o usuario usando o 👉RBAC

criar o rbac.yaml

code rbac.yaml;

Modelo

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: ecomerce-user
  namespace: ecomerce
rules:
  - apiGroups: [""]
    resources: ["pods", "services"]
    verbs: ["get", "list", "watch", "create", "update", "delete", "patch"]
  - apiGroups: ["apps"]
    resources: ["replicasets", "deployments"]
    verbs: ["get", "list", "watch", "create", "update", "delete", "patch"]

---

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: ecomerce-user-bind
  namespace: ecomerce
subjects:
- kind: User
  name: saulo
roleRef:
  kind: Role
  name: ecomerce-user
  apiGroup: rbac.authorization.k8s.io

Aplica o rbac

kubectl apply -f rbac.yaml;

Testar como o comando

kubectl get pods -n ecomerce --kubeconfig kubeconfig-saulo.yaml;

No video o Fabrício faz um teste realizadno um deploy usando as config criada expecificando o namespace (-n)

kubectl apply -f deployment.yaml -n ecomerce --kubeconfig kubeconfig-saulo.yaml;

login_kubernetes's People

Contributors

saulotarsobc avatar

Stargazers

 avatar

Watchers

 avatar

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.