O conjunto de documentação deste produto faz o possível para usar uma linguagem imparcial. Para os fins deste conjunto de documentação, a imparcialidade é definida como uma linguagem que não implica em discriminação baseada em idade, deficiência, gênero, identidade racial, identidade étnica, orientação sexual, status socioeconômico e interseccionalidade. Pode haver exceções na documentação devido à linguagem codificada nas interfaces de usuário do software do produto, linguagem usada com base na documentação de RFP ou linguagem usada por um produto de terceiros referenciado. Saiba mais sobre como a Cisco está usando a linguagem inclusiva.
A Cisco traduziu este documento com a ajuda de tecnologias de tradução automática e humana para oferecer conteúdo de suporte aos seus usuários no seu próprio idioma, independentemente da localização. Observe que mesmo a melhor tradução automática não será tão precisa quanto as realizadas por um tradutor profissional. A Cisco Systems, Inc. não se responsabiliza pela precisão destas traduções e recomenda que o documento original em inglês (link fornecido) seja sempre consultado.
Este documento descreve a configuração para provisionar um cluster Kubernetes de produção da Cisco Intersight (SaaS) com o uso do Cisco Intersight™ Kubernetes Service (IKS).
Kubernetes, nos últimos tempos, tornou-se uma ferramenta de gerenciamento de contêineres de fato, já que as organizações tendem a investir mais na modernização de aplicativos com soluções em contêineres. Com o Kubernetes, as equipes de desenvolvimento podem implantar, gerenciar e escalar seus aplicativos em contêineres com facilidade, tornando as inovações mais acessíveis a seus pipelines de entrega contínua.
No entanto, o Kubernetes vem com desafios operacionais, porque requer tempo e conhecimento técnico para instalar e configurar.
A instalação do Kubernetes e dos diferentes componentes de software necessários, a criação de clusters, a configuração de armazenamento, rede e segurança, juntamente com operações (por exemplo, atualização, atualização e correção de bugs críticos de segurança) exigem um investimento contínuo e significativo em capital humano.
Entre no IKS, uma solução SaaS pronta para uso para gerenciar Kubernetes consistentes e de nível de produção em qualquer lugar. Para ler mais sobre os recursos do IKS, verifique este link aqui.
Para este documento, a ideia é mostrar a capacidade do IKS de integrar-se perfeitamente à sua infraestrutura local, executando o VMware ESXi e o vCenter.
Com apenas alguns cliques, você pode implantar um cluster Kubernetes de produção em sua infraestrutura VMware.
Mas, para fazer isso, você precisa integrar seu vCenter local à Intersight, que é conhecida como "reivindicação de um destino", sendo o vCenter o destino aqui.
Você precisaria de um Cisco Intersight Assist Virtual Appliance, que ajuda a adicionar destinos de endpoint ao Cisco Intersight. Você pode instalar o Intersight Assist usando o OVA de bootstrap disponível no site oficial da Cisco.
Para limitar o escopo deste documento, não devemos nos concentrar na instalação do Cisco Intersight Assist Virtual Appliance. Mas você pode dar uma olhada no processo aqui
A Cisco recomenda que você tenha conhecimento destes tópicos:
Este documento não se restringe a versões de software e hardware específicas.
Como a implantação de um Cisco Intersight Appliance está fora do escopo deste documento.
Partimos do pressuposto de que você já tem uma conta da Intersight em funcionamento e solicitou com êxito um vCenter/Esxi no local para ela.
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
As políticas permitem o gerenciamento simplificado, pois abstraem a configuração em modelos reutilizáveis.
Algumas das políticas que precisamos configurar estão listadas abaixo. Observe que todas essas políticas seriam criadas na seção Configurar >> Políticas e Configurar >> Pools da Intersight.
Você pode ver o caminho da política no topo de cada captura de tela também, fornecido abaixo.
Esse pool de IPs será usado para endereços IP nas máquinas virtuais dos nós de controle e de trabalho quando for iniciado no host ESXi.
Aqui você define o CIDR da Rede de pods e serviços, para a rede interna dentro do cluster Kubernetes.
CIDR de serviços e rede
Essa Política define sua configuração de NTP e DNS.
Configuração de NTP e DNS
Com essa política, você pode definir a configuração de proxy para o tempo de execução do contêiner do docker.
Configuração de proxy para Docker
Nessa política, você definirá a configuração necessária nas máquinas virtuais implantadas como nós principal e de trabalho.
Configuração de VMs usadas
Depois de criarmos as políticas acima, elas serão vinculadas a um perfil que poderá ser implantado.
A implantação da configuração usando políticas e perfis abstrai a camada de configuração para que ela possa ser implantada rapidamente repetidamente.
Você pode copiar este perfil e criar um novo com poucas ou mais modificações nas políticas subjacentes em minutos, para um ou mais clusters Kubernetes em uma fração de tempo necessária com um processo manual.
Vá para Nome e defina Marcas.
Configuração de perfil com nome e marcas
Defina as políticas de pool, SO de nó, CIDR de rede. Você também precisa configurar uma ID de usuário e uma chave SSH (pública).
Sua chave privada correspondente seria usada para fazer SSH nos nós Principal e Trabalhador.
Configuração de perfil com políticas atribuídas
Configure o plano de controle: Você pode definir quantos nós mestres seriam necessários no plano de controle.
Configuração do nó mestre
Configure os nós de Trabalho: Dependendo dos requisitos do aplicativo, você pode aumentar ou reduzir os nós de trabalho.
Configuração de nós de trabalho
Configurar Complemento. A partir de agora, você pode implantar automaticamente o Kubernetes Dashboard e o Graffana com o monitoramento do Prometheus.
No futuro, você pode adicionar mais complementos que podem ser implantados automaticamente usando o IKS.
Adicionar Complementos, se houver
Verifique o Resumo e clique em Implantar.
Tela Resumo da criação de perfil
Use esta seção para confirmar se a sua configuração funciona corretamente.
No lado superior direito, você pode acompanhar o progresso da implantação.
Verificar usando a GUI do IKS
À medida que a implantação progride, você pode ver seus nós principais e de trabalho do Kubernetes surgindo no vCenter.
Cluster IKS sendo ativado no vCenter
Caso precise ver etapas detalhadas para a implantação, você pode detalhar a execução.
Execução da criação de perfil
Você pode se conectar ao cluster Kubernetes das seguintes maneiras:
Usando o arquivo KubeConfig, que você pode baixar em Operate > Kubernetes > Selecione as opções na extrema direita.
Você precisa ter o KubeCtl instalado na estação de trabalho de gerenciamento, de onde você deseja acessar este cluster.
Baixar arquivo KubeConfig do IKS
Você também pode usar diretamente o SSH no nó mestre, usando aplicativos SSH como Putty com as credenciais e a chave privada configurada no momento da implantação
Se você implantar o 'Painel do Kubernetes' como um complemento, você também poderá usar isso para implantar aplicativos diretamente usando a GUI.
Para ver mais detalhes, confira a seção "Acessando clusters Kubernetes", aqui :
Assim que puder se conectar ao cluster do Kubernetes, usando o kubeCtl, você poderá usar os seguintes comandos para verificar se o cluster tem todos os componentes instalados e em execução.
Verifique se os nós no cluster estão em um estado 'pronto'.
iksadmin@kubek8scl1-controlpl-b8a50f8235:~$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
kubek8scl1-caaskubew-6ba6bf794e Ready 6d4h v1.19.5
kubek8scl1-caaskubew-caa202993e Ready 6d4h v1.19.5
kubek8scl1-controlpl-b8a50f8235 Ready master 6d4h v1.19.5
Verifique o status dos pods que foram criados no momento da instalação dos componentes essenciais no cluster.
iksadmin@kubek8scl1-controlpl-b8a50f8235:~$ kubectl get pod -n iks | grep apply-
apply-ccp-monitor-2b7tx 0/1 Completed 0 6d3h
apply-cloud-provider-qczsj 0/1 Completed 0 6d3h
apply-cni-g7dcc 0/1 Completed 0 6d3h
apply-essential-cert-ca-jwdtk 0/1 Completed 0 6d3h
apply-essential-cert-manager-bg5fj 0/1 Completed 0 6d3h
apply-essential-metallb-nzj7h 0/1 Completed 0 6d3h
apply-essential-nginx-ingress-8qrnq 0/1 Completed 0 6d3h
apply-essential-registry-f5wn6 0/1 Completed 0 6d3h
apply-essential-vsphere-csi-tjfnq 0/1 Completed 0 6d3h
apply-kubernetes-dashboard-rslt4 0/1 Completed 0 6d3h
Verifique o status do pod ccp-helm-operator que gerencia o helm em execução local e instala complementos.
iksadmin@kubek8scl1-controlpl-b8a50f8235:~$ kubectl get helmcharts.helm.ccp.----.com -A
NAMESPACE NAME STATUS VERSION INSTALLED VERSION SYNCED
iks ccp-monitor INSTALLED 0.2.61-helm3
iks essential-cert-ca INSTALLED 0.1.1-helm3
iks essential-cert-manager INSTALLED v1.0.2-cisco1-helm3
iks essential-metallb INSTALLED 0.12.0-cisco3-helm3
iks essential-nginx-ingress INSTALLED 2.10.0-cisco2-helm3
iks essential-registry INSTALLED 1.8.3-cisco10-helm3
iks essential-vsphere-csi INSTALLED 1.0.1-helm3
iks kubernetes-dashboard INSTALLED 3.0.2-cisco3-helm3
iks vsphere-cpi INSTALLED 0.1.3-helm3
iksadmin@kubek8scl1-controlpl-b8a50f8235:~$ helm ls -A
WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: /home/iksadmin/.kube/config
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
addon-operator iks 1 2021-11-05 07:45:15.44180913 +0000 UTC deployed ccp-helm-operator-9.1.0-alpha.44.g415a48c4be1.0
ccp-monitor iks 1 2021-11-05 08:23:11.309694887 +0000 UTC deployed ccp-monitor-0.2.61-helm3
essential-cert-ca iks 1 2021-11-05 07:55:04.409542885 +0000 UTC deployed cert-ca-0.1.1-helm3 0.1.0
essential-cert-manager iks 1 2021-11-05 07:54:41.433212634 +0000 UTC deployed cert-manager-v1.0.2-cisco1-helm3 v1.0.2
essential-metallb iks 1 2021-11-05 07:54:48.799226547 +0000 UTC deployed metallb-0.12.0-cisco3-helm3 0.8.1
essential-nginx-ingress iks 1 2021-11-05 07:54:46.762865131 +0000 UTC deployed ingress-nginx-2.10.0-cisco2-helm3 0.33.0
essential-registry iks 1 2021-11-05 07:54:36.734982103 +0000 UTC deployed docker-registry-1.8.3-cisco10-helm3 2.7.1
essential-vsphere-csi kube-system 1 2021-11-05 07:54:58.168305242 +0000 UTC deployed vsphere-csi-1.0.1-helm3 v2.0.0
kubernetes-dashboard iks 1 2021-11-05 07:55:10.197905183 +0000 UTC deployed kubernetes-dashboard-3.0.2-cisco3-helm3 2.1.0
vsphere-cpi kube-system 1 2021-11-05 07:54:38.292088943 +0000 UTC deployed vsphere-cpi-0.1.3-helm3 1.1.0
Verifique o status dos pods Essential* que gerenciam os complementos Essential (núcleo), instalados por padrão, em cada cluster de locatários IKS.
iksadmin@kubek8scl1-controlpl-b8a50f8235:~$ kubectl get pod -n iks | grep ^essential-
essential-cert-manager-6bb7d776d-tpkhj 1/1 Running 0 6d4h
essential-cert-manager-cainjector-549c8f74c-x5sjp 1/1 Running 0 6d4h
essential-cert-manager-webhook-76f596b686-drf79 1/1 Running 0 6d4h
essential-metallb-controller-6557847d57-djs9b 1/1 Running 0 6d4h
essential-metallb-speaker-7t54v 1/1 Running 0 6d4h
essential-metallb-speaker-ggmbn 1/1 Running 0 6d4h
essential-metallb-speaker-mwmfg 1/1 Running 0 6d4h
essential-nginx-ingress-ingress-nginx-controller-k2hsw 1/1 Running 0 6d4h
essential-nginx-ingress-ingress-nginx-controller-kfkm9 1/1 Running 0 6d4h
essential-nginx-ingress-ingress-nginx-defaultbackend-695fbj4mnd 1/1 Running 0 6d4h
essential-registry-docker-registry-75b84457f4-4fmlh 1/1 Running 0 6d4h
Verifique o status dos serviços e do balanceador de carga implantado no namespace IKS.
iksadmin@kubek8scl1-controlpl-b8a50f8235:~$ kubectl get svc -n iks
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ccp-monitor-grafana ClusterIP 192.168.23.161 80/TCP 6d3h
ccp-monitor-prometheus-alertmanager ClusterIP 192.168.23.70 80/TCP 6d3h
ccp-monitor-prometheus-kube-state-metrics ClusterIP None 80/TCP 6d3h
ccp-monitor-prometheus-node-exporter ClusterIP None 9100/TCP 6d3h
ccp-monitor-prometheus-pushgateway ClusterIP 192.168.23.130 9091/TCP 6d3h
ccp-monitor-prometheus-server ClusterIP 192.168.23.95 443/TCP 6d3h
essential-cert-manager ClusterIP 192.168.23.178 9402/TCP 6d4h
essential-cert-manager-webhook ClusterIP 192.168.23.121 443/TCP 6d4h
essential-nginx-ingress-ingress-nginx-controller LoadBalancer 192.168.23.26 192.168.10.11 80:31121/TCP,443:31753/TCP 6d4h
essential-nginx-ingress-ingress-nginx-defaultbackend ClusterIP 192.168.23.205 80/TCP 6d4h
essential-registry-docker-registry ClusterIP 192.168.23.12 443/TCP 6d4h
kubernetes-dashboard ClusterIP 192.168.23.203 443/TCP 6d4h
Esta seção fornece informações que podem ser usadas para o troubleshooting da sua configuração.
No caso de um pod específico não aparecer, você pode usar esses comandos para detalhar a causa.
Syntax : kubectl describe pod -n
Example :
kubectl describe pod vsphere-csi-controller-7d56dc7c8-qgbhw -n kube-system
Name: vsphere-csi-controller-7d56dc7c8-qgbhw
Namespace: kube-system
Priority: 0
Node: kubek8scl1-controlpl-eb44cf1bf3/192.168.58.11
Start Time: Tue, 28 Sep 2021 02:39:41 +0000
Labels: app=vsphere-csi-controller
pod-template-hash=7d56dc7c8
role=vsphere-csi
Annotations:
Status: Running
IP: 192.168.58.11
IPs:
IP: 192.168.58.11
Controlled By: ReplicaSet/vsphere-csi-controller-7d56dc7c8
Containers:
csi-attacher:
Container ID: docker://60002693136d00f3b61237304a1fbc033df92f86dc1352965328fe3c4d264fdb
Image: registry.ci.x----x.com/cpsg_kaas-images/quay.io/k8scsi/csi-attacher:v2.0.0
Image ID: docker-pullable://registry.ci.x------x.com/cpsg_kaas-images/quay.io/k8scsi/csi-attacher@sha256:71e2b9b5b8c52d789ef89ba901c8fba270fa623789a988c77c52ebb0257bf723
Port:
Host Port:
Args:
--v=4
--timeout=300s
--csi-address=$(ADDRESS)
--leader-election
State: Running
Started: Thu, 30 Sep 2021 05:44:11 +0000
Last State: Terminated
Reason: Error
Message: Lost connection to CSI driver, exiting
Exit Code: 255
Started: Thu, 30 Sep 2021 05:38:20 +0000
Finished: Thu, 30 Sep 2021 05:39:06 +0000
Ready: True
Restart Count: 531
X----------------------- Log Text Omitted ---------X----------------------X--------------------X
Revisão | Data de publicação | Comentários |
---|---|---|
1.0 |
18-Jan-2022
|
Versão inicial |