System Clusters에서는 system에 등록되어있는 cluster들을 관리할 수 있습니다. Cluster를 등록하는 New cluster, 등록되어져있는 cluster를 수정하는 Cluster Edit , 불필요한 cluster를 리스트에서 삭제하는 Cluster Delete 을 통해 유연한 cluster 관리 서비스를 제공합니다.
Cluster List
Cluster 화면은 Cluster의 효율적인 검색을 위한 (1)필터와 (2)리스트로 크게 구분할 수 있습니다.
① 필터
Provider : AWS, AZURE, GCP,IBM을 검색할 수 있습니다.
Type: Provisioned, Attached을 검색할 수 있습니다.
Name: cluster의 이름을 검색할 수 있습니다.
② 리스트
Cluster Name: 등록되어져있는 cluster의 이름을 보여줍니다.
Provider: 해당 클러스터의 provider Icon을 보여줍니다.
Type: 해당 클러스터의 등록 타입을 보여줍니다.
Last Provisioning Status : 가장 최근 cluster의 상태를 보여줍니다.
type이 “attached”인 cluster는 상태가 attached로 고정이지만 “provisioned”인 cluster 상태는 아래와 같습니다.
Status | Cluster Provisioning | Cluster Delete | Node Pool Add | Node Pool Resize | Node Pool |
---|---|---|---|---|---|
Failed | o | o | o | o | o |
Created | o | ||||
Deleted | o | o | o | ||
Updating | o | o | |||
Updated | o | o |
Health : 해당 cluster의 상태를 아이콘으로 나타냅니다.
상태 | 모양 | 내용 |
---|---|---|
Succeed | cluster가 정상 상태입니다.. | |
Failed | cluster에 이상이 있습니다. | |
Unknown | cluster의 상태를 알 수 없습니다. |
K8S Version : 설치된 K8S의 버전을 보여줍니다.
Allocated CPU, Memory : 사용되고 있는 리소스의 상태를 보여줍니다.
Nodes : 사용되고 있는 노드의 수를 보여줍니다.
Actions :
버튼 | 모양 | 내용 |
---|---|---|
Detail | cluster detail를 확인합니다. | |
Delete | cluster를 삭제합니다. |
New Cluster
CSP에서 사용하던 Cluster를 Attach하여 등록하는 Attach Cluster와 새 Cluster를 설치할 수 있는 Cluster Provisioning 2가지 방법으로 New Cluster 서비스를 제공합니다.
Attach cluster
Cluster Provider에서 설치하려는 provider의 종류를 선택하고 원하는 Cluster Name을 설정합니다. 그리고 Cluster API Server와 Token 정보를 받기 위해 아래와 같은 과정을 진행하여 입력하고 Attach를 클릭하여 Cluster를 등록합니다.
# 등록할 클러스터에 접속하여 아래의 Command를 실행 합니다. $ kubectl create ns zcp-system $ kubectl create serviceaccount zcp-mcm-backend-service-admin -n zcp-system $ kubectl label sa zcp-mcm-backend-service-admin -n zcp-system zcp-mcm-default=true $ kubectl create clusterrolebinding zcp-mcm-backend-service-admin \ --clusterrole cluster-admin \ --serviceaccount zcp-system:zcp-mcm-backend-service-admin $ kubectl label clusterrolebinding zcp-mcm-backend-service-admin zcp-mcm-default=true CLUSTER_APISERVER=$(kubectl config view --minify | grep server | cut -f 2- -d ":" | tr -d " ") CLUSTER_TOKEN=$(kubectl describe secret -n zcp-system $(kubectl get sa zcp-mcm-backend-service-admin -n zcp-system -o jsonpath='{range .secrets[*]}{.name}{"\n"}' | grep zcp-mcm-backend-service-admin-token) | grep -E '^token' | cut -f2 -d':' | tr -d " ") echo "-----------------------------" echo "CLUSTER_APISERVER :: " $CLUSTER_APISERVER echo "CLUSTER_TOKEN :: " $CLUSTER_TOKEN
Cluster Provisioning
Cluster Provisioning 은 provider을 선택하고 해당 provider에서 제공하는 서비스에 맞는 정보를 입력하여 설치할 수 있습니다. (Modernization platform v2.0에서는 AKS와 EKS가 활성화되어있습니다.)
AKS
Basic info
AKS 클러스터 설치에 필요한 kubernetes version, Location 을 선택하고 원하는 Cluster Name을 입력합니다. Resource Group Name을 Reuse 필요 유무에 따라 ON/OFF 버튼을 누르고 설정합니다.
2. Crendential
Subscription Id, Client Id, Client Secret, Tenant Id를 입력합니다.
3. Node Group
default로 설치되는 Node Group을 위해 각 value들을 설정합니다.
4. Network
Network의 설정 값들을 지정합니다. Virtual Network과 Subnet는 reuse을 원할 시에 ON 버튼을 활성화하여 Name만을 입력하고 아닐 시에는 address를 함께 입력합니다. Docker Bridge Cidr은 기본 값으로 설정되어있고 Pod Cidr, Service Cidr, Dns Service Ip는 값들을 입력하여 Network를 구성합니다.
5. Security
Network Security Group을 구성하기 위해 Name과 Rules을 설정합니다.
reuse를 원할 시 ON 버튼을 활성화하여 Name만 입력합니다.
6. Etc
Admin Username을 입력합니다. 모든 설정이 끝나면 provisioning 버튼이 활성화되고 클릭하면 provisiong과정이 시작됩니다.
EKS
Basic info
EKS 클러스터 설치에 필요한 region, kubernetes version을 선택하고 원하는 Cluster Name을 입력합니다.
2. Crendential
발급 받은 Aws Access Key와 Aws Secret Key를 입력합니다.
3. Node Group
default로 설치되는 Node Group을 위해 각 value들을 설정합니다. ( pool size가 max size를 넘지 않게 유의합니다.)
4. Network
Network의 설정 값들을 지정합니다. 우선 Endpoint의 public, private access를 정합니다. ON/OFF 버튼을 클릭하여 원하는 접근방식을 설정합니다. 그리고 Vpc, Subnet, Internetgateway, Routable 값들을 설정합니다. 각 설정값들은 reuse를 하지않는 것으로 기본값이 설정되어있습니다.
reuse를 원하지 않으면 추가 수정없이 각 설정 값들의 Name을 정하여 Network를 구성합니다.
reuse가 필요할 시에는 ON/OFF 버튼을 클릭하여 reuse를 활성화하고 해당 값의 id를 입력하여 설정합니다.
5. Security
Security Group Enable은 기본 값으로 활성화 되어있습니다. reuse를 원하지 않을 땐 Name과 Group Rules을 설정합니다. reuse가 필요할땐 ON/OFF 버튼을 클릭하여 Security Group의 id를 입력하면 됩니다.
6. Etc
필요할 시에 AWS 클라우드 리소스와 AWS에서 실행되는 애플리케이션을 위한 모니터링 서비스인 Cloudwatch Log Retention In Days와 log type을 설정합니다. 모든 설정이 끝나면 provisioning 버튼이 활성화되고 클릭하면 provisiong과정이 시작됩니다.
Cluster Edit
Modernization platform v2.0에서는 등록된 Cluster에 Add-ons Install, Node Pool Edit 총 2가지 편집 기능을 제공합니다. 필요에 따른 Add-ons 설치를 통해 등록된 Cluster의 기능을 보강할 수 있고 Node Pool Edit을 통해 노드 풀을 보다 유연하게 사용할 수 있습니다.
Add-ons
Add-ons list
Fluent-bit
Fluentd
Ingress-nginx
Prometheus
Prometheus-blackbox-exporter
prometheus-k8s-events-exporter
설치
1. Fluent-bit
Version을 최신 버전을 선택하고 save를 클릭하여 설치합니다.
2. Fluentd
Version을 최신 버전으로 선택하고 save를 클릭하여 설치합니다.
3. Ingress-nginx
원하는 Name을 작성한 뒤에 Version을 선택하면 설치에 필요한 Parameters를 작성하는 창이 열립니다. Parameters는 기본 값으로 설정되어있으며 필요시에 수정하고 Save를 클릭하여 설치합니다.
4. Prometheus
Version을 최신 버전으로 선택하고 save를 클릭하여 설치합니다.
5. Prometheus-blackbox-exporter
최신 Version을 선택하고 Save를 클릭하여 설치합니다.
6. prometheus-k8s-events-exporter
최신 Version을 선택하고 Save를 클릭하여 설치합니다.
설치 확인 및 삭제
설치된 Add-ons는 Installed에서 확인할 수 있고 삭제를 원할 시에는 Remove를 클릭하여 해당 add-on을 삭제할 수 있습니다.
Node Pool
노드 풀의 Add/Resize/Delete 수정을 위해 Actions 버튼들을 활용합니다.
버튼 | 모양 | 내용 |
---|---|---|
Add | Node pool를 추가합니다. | |
Detail | Node pool를 수정합니다. | |
Resize | Node pool의 크기를 조정합니다. | |
Delete | Node pool를 삭제합니다. |
AKS
Add Node Pool
왼쪽 상단의 Add Node Pool 버튼을 클릭하면 새로운 노드 풀 추가를 위한 창이 열립니다.
각 value들을 설정한 뒤 save를 클릭하여 노드를 추가합니다.
Resize Node Pool
Actions 중 Resize 버튼을 클릭하면 Resize Node Pool을 위한 창이 열립니다. 원하는 Pool Size를 선택하여 노드 풀의 size를 조정합니다. ( * pool size는 설정되어있는 Max size를 넘어서는 안됩니다.)
Delete Node Pool
Actions 중 Delete 버튼을 클릭하여 노드 풀을 삭제합니다.
EKS
Add Node Pool
왼쪽 상단의 Add Node Pool 버튼을 클릭하면 새로운 노드 풀 추가를 위한 창이 열립니다.
각 Value들을 설정한 뒤 Save를 클릭하여 노드를 추가합니다.
Resize Node Pool
Actions 중 Resize 버튼을 클릭하면 Resize Node Pool을 위한 창이 열립니다. 원하는 Pool Size를 선택하여 노드 풀의 size를 조정합니다. ( * pool size는 설정되어있는 Max size를 넘어서는 안됩니다.)
Delete Node Pool
Actions 중 Delete 버튼을 클릭하여 노드 풀을 삭제합니다.
Cluster Delete
Actions 중 Delete 버튼을 클릭하면 Cluster Delete을 위한 창이 열립니다. Cluster Delete을 하면 관리하던 목록에서 해당 클러스터를 삭제하게됩니다.