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 nível de produção do Cisco Intersight (SaaS) com o uso do Cisco Intersight™ Kubernetes Service (IKS).
Kubernetes, nos últimos tempos, se tornou uma ferramenta de gerenciamento de contêineres de fato, já que as empresas tendem a investir mais na modernização de aplicativos com soluções contaminadas. Com os Kubernetes, as equipes de desenvolvimento podem implantar, gerenciar e dimensionar seus aplicativos contidos com facilidade, tornando as inovações mais acessíveis a seus pipelines de entrega contínua.
Entretanto, o Kubernetes vem com desafios operacionais, pois requer tempo e experiência técnica para instalar e configurar.
A instalação de 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 de segurança críticos) exigem um investimento contínuo e significativo em capital humano.
Entre no IKS, uma solução de SaaS pronta para uso para gerenciar Kubernetes consistentes e 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 da IKS de se integrar perfeitamente à sua infraestrutura no local, executando o VMware ESXi e o vCenter.
Com alguns cliques, você pode implantar um cluster Kubernetes de produção na sua infraestrutura VMware.
Mas, para fazer isso, você precisa integrar seu vCenter no local com a Intersight, conhecida como "reivindicação de um alvo", sendo que o vCenter é o alvo aqui.
Você precisaria de um Cisco Intersight Assist Virtual Appliance, que ajude a adicionar destinos de endpoint ao Cisco Intersight. Você pode instalar o Intersight Assist usando o bootstrap OVA disponível no site oficial da Cisco.
Para limitar o escopo deste documento, não nos concentramos 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.
Pressupomos que você já tem uma conta do Intersight em funcionamento e já reivindicou com êxito um vCenter/Esxi no local.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
As políticas permitem um gerenciamento simplificado à medida que 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 no Intersight.
Você também pode ver o caminho da política em cima de cada captura de tela, apresentado abaixo.
Esse pool de IPs será usado para endereços IP em suas máquinas virtuais de controle e nós de trabalho, quando iniciado no host ESXi.
Aqui você define o CIDR da rede Pod and Services para redes internas no cluster Kubernetes.
Essa política define sua 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.
Nesta política, você definirá a configuração necessária nas Máquinas virtuais implantadas como nós Master e Worker.
Depois de criarmos as políticas acima, as vincularíamos a um perfil que poderíamos implantar.
A implantação da configuração usando políticas e perfis abstrai a camada de configuração para que ela possa ser implantada repetidamente rapidamente.
Você pode copiar esse perfil e criar um novo com pequenas ou mais modificações nas políticas subjacentes em minutos, para um ou mais clusters de Kubernetes em uma fração de tempo necessário com um processo manual.
Ilustre o nome e defina marcas.
Defina as políticas de pool, SO de nó e CIDR de rede. Você também precisa configurar um ID de usuário e uma chave SSH (pública).
Sua chave privada correspondente seria usada para ssh nos nós Master & Worker.
Configurar o plano de controle: Você pode definir quantos nós Master você precisaria no plano de controle.
Configure os nós do Worker: Dependendo dos requisitos do aplicativo, você pode escalar ou escalar seus nós de trabalho.
Configure o complemento. A partir de agora, você pode implantar automaticamente o Kubernetes Dashboard e o Graffana com monitoramento Prometheus.
No futuro, você pode adicionar mais complementos que podem ser implantados automaticamente usando o IKS.
Marque Resumo e clique em Implantar.
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.
À medida que a implantação progride, você pode ver seus nós Kubernetes Master e Worker surgindo no vCenter.
Caso precise ver as etapas detalhadas para a implantação, você pode detalhar a execução.
Você pode se conectar ao cluster Kubernetes das seguintes maneiras:
Usando o arquivo KubeConfig, que você pode baixar de Operate > Kubernetes > Selecione as opções na extrema direita.
Você precisa ter o KubeCtl instalado na estação de trabalho Management, de onde deseja acessar esse cluster.
Você também pode fazer SSH diretamente no nó mestre, usando aplicativos SSH como Putty com as credenciais e chave privada configuradas no momento da implantação
Se você implantar o 'Painel de Kubernetes' como um complemento, você também poderá usá-lo para implantar aplicativos diretamente usando a GUI.
Para verificar mais detalhes, consulte a seção 'Acessando clusters de Kubernetes', aqui:
Depois de conseguir se conectar ao cluster 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 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 do operador ccp-helm que gerencia o helm que está executando localmente 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 (core), instalados por padrão, em cada cluster de espaço 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 implantados 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.
Caso um pod específico não esteja sendo exibido, 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 |