Tanzu Mission Control (TMC): Multi-Cloud Kubernetes the easy way Tanzu(TKG)

É de conhecimento público que o modelo de cloud hybrid/multi-cloud é escolhido pela maioria das organizações para executar suas workloads. Em outras palavras, as organizações não estão mais restritas a utilizar ou alocar suas apps/workloads exclusivamente em uma única cloud, seja pública ou privada. Em vez disso, estão optando por uma abordagem que envolve a combinação de cloud privadas e públicas, ou até mesmo o uso de várias cloud públicas. Isso se tornou uma estratégia para evitar o “vendor lock-in”, estar compliance com regulamentações locais e aproveitar o melhor de ambos os mundos…

No entanto, isso acaba introduzindo complexidade, pois não é nada fácil gerenciar uma infraestrutura híbrida/multi-cloud sem as ferramentas adequadas para auxiliar na gestão agnóstica, garantindo a homogeneidade de políticas e configurações, seja em segurança, governança, ou para simplificar a eficiência operacional.

Tanzu Mission Control

TMC é uma plataforma, solução de gerenciamento de clusters Kubernetes multi-cloud disponível nos modelos self-managed e SaaS. Ela possibilita operações “Day 1” e “Day 2” em ambientes Kubernetes, seja em serviços gerenciados de Kubernetes, como AKS, GKE e EKS, ou em soluções self managed/on-prem, como Tanzu TKG, OpenShift e mais….

O TMC oferece “Single pane of glass” (único painel de controle), que permite a gestão centralizada e unificada por meio de uma única interface. Isso inclui a criação de clusters, o controle de acesso, a aplicação de políticas e deploy de apps, tudo isso sem a complexidade usual associada a essas operações.

In a nutshell, TMC simplifica significativamente a administração e a governança de ambientes Kubernetes em várias clouds e ambientes, proporcionando consistência e eficiência operacional.

Criação de TKG cluster usando TMC

Abrir a consola do TMC, em (Clusters) click ADD Cluster -> Create Tanzu Kubernetes Grid cluster

Este é um ambiente demo correndo vSphere with Tanzu, portanto nesse caso já tem o management cluster. Selecionar e clicar CONTINUE to CREATE CLUSTER

preencher o provisioner, NEXT

Atribuir nome ao cluster

configuração de Proxy, Network settings default, storage class vsphere-with-tanzu-storage-policy, NEXT

Control Plane

Na configuração de CP, por ser ambiente de teste,e não requer muito horse power e HA, vou selecionar Single node cluster.

Kubernetes version: v1.24.9+vmware.1-tkg.4

OS version: photon 3 amd64

Instance type: best-effort-default-small

Storage class: vsphere-with-tanzu-storage-policy

configuração default volumes é opcional

Configure node pool

Configurar 1 node pool com 2 worker nodes. preencher o nome.

Worker count: 2

Instance type: best-effort-default-small (2vcPU, 4GB RAM)

Opcionalmente, você pode realizar configurações adicionais no registro do cluster, configurar o protocolo NTP, gerenciar certificados, adicionar SSH Keys, entre outras personalizações.

Create Clsuter

E em 5…7 minutos o cluster é criado

Do lado do Vcenter

Access Cluster

no cluster, clicar em Actions -> Access this cluster

Download kubeconfig for tmc CLI

Abrir CLI e executar

kubectl –kubeconfig=<path/to>/kubeconfig-virtualclusterit-tanzu.yml get namespaces

exemplo:

kubectl –kubeconfig=C:\Tanzu\kubeconfig-virtualclusterit-tanzu.yml get no

Deploy Workload

via CLI (fb app)

git clone https://github.com/manuh-L/facebooc.git; git checkout multistage

kubectl –kubeconfig=C:\Tanzu\/kubeconfig-virtualclusterit-tanzu.yml create namespace fb

kubectl –kubeconfig=C:\Tanzu\/kubeconfig-virtualclusterit-tanzu.yml apply -f C:\Tanzu\facebooc\k8s\fb.yml -n fb

kubectl –kubeconfig=C:\Tanzu\/kubeconfig-virtualclusterit-tanzu.yml apply -f C:\Tanzu\facebooc\k8s\fb-svc.yml -n fb

kubectl –kubeconfig=C:\Tanzu\/kubeconfig-virtualclusterit-tanzu.yml get svc -n fb

App live

via Kubeapps (Helm)

nota: nao config o kubecconfig globamente como variavel por ter muitos cluster

kubectl –kubeconfig=C:\Tanzu\/kubeconfig-virtualclusterit-tanzu.yml create clusterrolebinding tkgs-admin-privileged-binding –clusterrole=psp:vmware-system-privileged –group=system:authenticated

kubectl –kubeconfig=C:\Tanzu\/kubeconfig-virtualclusterit-tanzu.yml create clusterrolebinding tkgs-admin-privileged-binding –clusterrole=psp:vmware-system-privileged –group=system:authenticated

helm –kubeconfig=C:\Tanzu\/kubeconfig-virtualclusterit-tanzu.yml repo add bitnami https://charts.bitnami.com/bitnami

kubectl –kubeconfig=C:\Tanzu\/kubeconfig-virtualclusterit-tanzu.yml create namespace kubeapps

helm –kubeconfig=C:\Tanzu\/kubeconfig-virtualclusterit-tanzu.yml install kubeapps –namespace kubeapps bitnami/kubeapps –set useHelm3=true –set frontend.service.type=LoadBalancer

kubeapps-operator-token.yml

kubeapps-operator-token.yml

apiVersion: v1
kind: Secret
metadata:
  name: kubeapps-operator-token
  namespace: default
  annotations:
    kubernetes.io/service-account.name: kubeapps-operator
type: kubernetes.io/service-account-token

kubectl –kubeconfig=C:\Tanzu\/kubeconfig-virtualclusterit-tanzu.yml apply -f C:\Tanzu\kubeapps-operator-token.yml 2>&1>$null

kubectl –kubeconfig=C:\Tanzu\/kubeconfig-virtualclusterit-tanzu.yml get –namespace default secret kubeapps-operator-token -o jsonpath='{.data.token}’)

copiar API token kubeapps e guardar

kubectl –kubeconfig=C:\Tanzu\/kubeconfig-virtualclusterit-tanzu.yml get svc -n kubeapps

copiar o external ip do service kubeapps

Abir browser: http://10.54.4.34/

e para logar, introduzir o token da API

Catalog de apps

selecionar o package, vou testar o apache

depois de selecionar o helm chart package clique em DEPLOY

Inserir o nome

Essa janela permite editar de forma visual ou por meio das linhas do manifesto YAML, vários atributos do deployment, como o número de réplicas, auto scale, configmaps, portas, entre outros. Isso proporciona flexibilidade para ajustar as configurações do seu app conforme necessário.

Clicar em Deploy, e em 1 min temos o apache instalado.

Copiar a URL de acesso e abir no browser: http://10.54.4.35

Deixe um comentário