본 제품에 대한 문서 세트는 편견 없는 언어를 사용하기 위해 노력합니다. 본 설명서 세트의 목적상, 편견 없는 언어는 나이, 장애, 성별, 인종 정체성, 민족 정체성, 성적 지향성, 사회 경제적 지위 및 교차성에 기초한 차별을 의미하지 않는 언어로 정의됩니다. 제품 소프트웨어의 사용자 인터페이스에서 하드코딩된 언어, RFP 설명서에 기초한 언어 또는 참조된 서드파티 제품에서 사용하는 언어로 인해 설명서에 예외가 있을 수 있습니다. 시스코에서 어떤 방식으로 포용적인 언어를 사용하고 있는지 자세히 알아보세요.
Cisco는 전 세계 사용자에게 다양한 언어로 지원 콘텐츠를 제공하기 위해 기계 번역 기술과 수작업 번역을 병행하여 이 문서를 번역했습니다. 아무리 품질이 높은 기계 번역이라도 전문 번역가의 번역 결과물만큼 정확하지는 않습니다. Cisco Systems, Inc.는 이 같은 번역에 대해 어떠한 책임도 지지 않으며 항상 원본 영문 문서(링크 제공됨)를 참조할 것을 권장합니다.
이 문서에서는 Cisco Intersight™ IKS(Kubernetes Service)를 사용하여 Cisco Intersight(SaaS)에서 프로덕션 등급 Kubernetes 클러스터를 프로비저닝하기 위한 컨피그레이션에 대해 설명합니다.
Kubernetes는 최근 컨테이너화된 솔루션으로 애플리케이션 현대화에 더 많은 투자를 하려는 조직이 늘어남에 따라 사실상 컨테이너 관리 툴이 되었습니다. 개발 팀은 Kubernetes를 통해 컨테이너화된 애플리케이션을 쉽게 구축, 관리 및 확장할 수 있으므로, 지속적인 전달 파이프라인에 더 쉽게 혁신을 이용할 수 있습니다.
그러나 Kubernetes는 설치 및 구성에 시간과 기술 전문 지식이 필요하기 때문에 운영상의 문제가 수반됩니다.
Kubernetes와 필요한 다양한 소프트웨어 구성 요소 설치, 클러스터 생성, 스토리지 구성, 네트워킹 및 보안, 운영(예: 중요 보안 버그 업그레이드, 업데이트 및 패치)을 위해서는 지속적인 인적 자본 투자가 필요합니다.
어디서나 일관성 있는 프로덕션 등급의 Kubernetes를 관리하기 위한 턴키 방식의 SaaS 솔루션인 IKS를 입력합니다. IKS의 기능에 대한 자세한 내용은 여기에서 이 링크를 확인하십시오.
이 문서에서는 VMware ESXi 및 vCenter를 실행하는 온프레미스 인프라와 원활하게 통합되는 IKS의 기능을 소개하고자 합니다.
클릭 몇 번으로 VMware 인프라에 프로덕션 등급의 Kubernetes 클러스터를 구축할 수 있습니다.
그러나 이를 위해서는 온프레미스 vCenter를 Intersight와 통합해야 합니다. Intersight는 '목표 청구'로 알려져 있습니다. 여기서 vCenter가 목표입니다.
Cisco Intersight에 엔드포인트 대상을 추가하는 데 도움이 되는 Cisco Intersight Assist Virtual Appliance가 필요합니다. Cisco 공식 웹 사이트에 있는 부트스트랩 OVA를 사용하여 Intersight Assist를 설치할 수 있습니다.
이 문서의 범위를 제한하기 위해 Cisco Intersight Assist Virtual Appliance 설치에 중점을 두지 않습니다. 하지만 여기서는 이 프로세스를
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.
Cisco Intersight Appliance는 이 문서의 범위를 벗어납니다.
이미 작동 중인 Intersight 어카운트가 있으며, 이에 대한 온프레미스 vCenter/Esxi를 성공적으로 클레임했다고 가정합니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 이해해야 합니다.
정책을 사용하면 구성을 재사용 가능한 템플릿으로 추상화할 때 관리가 간소화됩니다.
구성해야 하는 정책 중 일부는 아래에 나열되어 있습니다. 이러한 모든 정책은 Intersight의 Configure(구성) >> Policies & Configure(정책 및 구성) >> Pools(풀) 섹션에서 생성됩니다.
아래 표시된 각 스크린샷 위에 정책 경로가 표시됩니다.
이 IP 풀은 ESXi 호스트에서 실행될 때 제어 및 작업자 노드 가상 머신의 IP 주소에 사용됩니다.
여기에서 Kubernetes 클러스터 내의 내부 네트워킹을 위한 Pod and Services Network CIDR을 정의합니다.
이 정책은 NTP 및 DNS 컨피그레이션을 정의합니다.
이 정책을 사용하면 docker 컨테이너 런타임의 프록시 컨피그레이션을 정의할 수 있습니다.
이 정책에서는 마스터 및 작업자 노드로 구축된 가상 머신에 필요한 컨피그레이션을 정의합니다.
위의 정책을 생성한 후에는 이를 프로파일로 바인딩하여 구축할 수 있습니다.
정책 및 프로필을 사용하여 컨피그레이션을 구축하면 컨피그레이션 레이어가 추상화되어 신속하게 반복적으로 구축할 수 있습니다.
이 프로필을 복사하여 몇 분 이내에 기본 정책에 대한 수정 사항이 거의 없는 새 프로필을 하나 이상의 Kubernetes 클러스터에 수동 프로세스에 필요한 시간 내에 만들 수 있습니다.
Name(이름)에 GiVe를 입력하고 Tags(태그)를 설정합니다.
풀, 노드 OS, 네트워크 CIDR 정책을 설정합니다. 또한 사용자 ID 및 SSH 키(공용)를 구성해야 합니다.
해당 개인 키를 사용하여 Master & Worker 노드에 ssh를 입력합니다.
컨트롤 플레인을 구성합니다. 제어 평면에 필요한 마스터 노드의 수를 정의할 수 있습니다.
작업자 노드를 구성합니다. 애플리케이션 요구 사항에 따라 작업자 노드를 확장하거나 축소할 수 있습니다.
추가 기능을 구성합니다. 지금부터 Kubernetes Dashboard 및 Graffana를 Prometeus 모니터링으로 자동으로 구축할 수 있습니다.
나중에 IKS를 사용하여 자동으로 구축할 수 있는 추가 기능을 추가할 수 있습니다.
Summary(요약)를 선택하고 Deploy(구축)를 클릭합니다.
이 섹션을 사용하여 컨피그레이션이 제대로 작동하는지 확인합니다.
오른쪽 상단에서 구축의 진행 상황을 추적할 수 있습니다.
구축이 진행되면서 Kubernetes Master 및 Worker Node가 vCenter에서 시작되는 것을 볼 수 있습니다.
구축에 대한 자세한 단계를 확인해야 하는 경우 실행을 더 자세히 살펴볼 수 있습니다.
다음과 같은 방법으로 Kubernetes 클러스터에 연결할 수 있습니다.
Operate(운영) > Kubernetes(KubeConfig) > Select the options on the far right(맨 오른쪽에 있는 옵션 선택)에서 다운로드할 수 있는 KubeConfig 파일을 사용합니다.
이 클러스터에 액세스하려는 Management 워크스테이션에 KubeCtl이 설치되어 있어야 합니다.
구축 시 구성된 자격 증명 및 개인 키를 사용하여 Putty와 같은 SSH 애플리케이션을 사용하여 마스터 노드에 직접 SSH를 설정할 수도 있습니다
'Kubernetes Dashboard'를 추가 기능으로 구축하는 경우 GUI를 사용하여 애플리케이션을 직접 구축할 수도 있습니다.
자세한 내용을 확인하려면 여기에서 'Access Kubernetes Clusters' 섹션을 확인하십시오.
KubeCtl을 사용하여 Kubernetes 클러스터에 연결할 수 있게 되면 다음 명령을 사용하여 클러스터에 모든 구성 요소가 설치되어 실행 중인지 확인할 수 있습니다.
클러스터의 노드가 '준비' 상태인지 확인합니다.
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
클러스터에 필수 구성 요소를 설치할 때 생성된 Pod의 상태를 확인합니다.
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
로컬로 실행 중인 키를 관리하고 추가 기능을 설치하는 ccp-helm-operator pod의 상태를 확인합니다.
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
모든 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
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
이 섹션에서는 컨피그레이션 문제를 해결하는 데 사용할 수 있는 정보를 제공합니다.
특정 Pod가 작동하지 않을 경우 이 명령을 사용하여 원인을 드릴다운할 수 있습니다.
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
개정 | 게시 날짜 | 의견 |
---|---|---|
1.0 |
18-Jan-2022 |
최초 릴리스 |