본문 바로가기

Openstack

Openstack Magnum

template을 CLI를 통해서 생성

openstack coe cluster template create kubernetes-cluster-template \
--image fedora-coreos-latest \
--external-network public \
--dns-nameserver 8.8.8.8 \
--master-flavor devstack-small-1 \
--flavor devstack-small-1 \
--coe kubernetes

 

버전을 지정해서 template을 만들고자 한다면 CLI로 생성할 때 아래 옵션 추가

--labels kube_tag=v1.21.5-rancher1

 

UI를 통해 실제 K8s 설치

 

Template을 통해 기본적인 설정은 채워지며 keypair나 이름 지정

 

Master Node의 경우 1에서 변경할 수 없지만 Worker Node는 임의의 숫자로 변경 가능하며 생성 이후에도 Worker Node는 늘이거나 줄일 수 있음

--master-lb-enabled

Template 생성 시 위 설정을 넣어줄 경우 master node의 개수를 조절 할 수 있음

Network는 새 네트워크를 생성하는게 디폴트로 체크가 되어있지만 해제할 경우 기존에 있는 네트워크를 연결해서 사용 가능

 

Master node HA 구성 시 ( Master node 2개 이상으로 구성 시 ) Enable Load Balancer for Master Nodes 옵션을 켜줘야 함

  • 현재 해당 기능을 통해서 master 2개와 worker 1개로 구성해서 배포해보았으나 mysql Too many connection 에러가 발생
  • Max connection 조정으로 해결
  • galera 컨테이너의 mysql에서 set global max_connections=2400;으로 조정

 

Management는 추가 조사 필요

 

Advanced는 Label에 특정 키워드를 집어 넣는 것으로 다양한 기능을 사용할 수 있으며 Magnum User Guide — magnum 16.1.0.dev21 documentation (openstack.org)에서 확인 가능

생성 이후에는 keypair를 통해 접근하며 core계정으로 접속

 

Cluster를 생성 시 기본적으로 모든 노드에 Taint 설정이 되어있기 때문에 해당 설정을 만족 시키거나 삭제하여 사용

  • CLOUD_PROVIDER_ENABLED=false
    • 라벨을 이용하면 Taint 설정 없이 생성
    • Master에도 Taint 설정 X

Label

Magnum User Guide — magnum 16.1.0.dev21 documentation (openstack.org)

 
kube_tag=v1.21.5-rancher1 // k8s version

metrics_server_enabled=true [default:true] // metrix 서버 활성화 여부

kube_dashboard_enabled=true [default:true] // 쿠버네티스 대쉬보드 활성화 여부

monitoring_enabled=true [default:false] // 프로메테우스 활성화 여부

monitoring_enabled이 true로 설정되면 trueMagnum은 Kubernetes 클러스터에 Prometheus Operator를
자동으로 배포하고 클러스터와 해당 애플리케이션을 모니터링하도록 구성합니다.
Prometheus Operator는 Kubernetes 클러스터에서 Prometheus를 쉽게 배포, 관리 및 확장할 수 있게
해주는 Kubernetes 네이티브 애플리케이션입니다.Magnum 클러스터 템플릿에서 prometheus_alert_rules및 와 같은 추가 구성 옵션을 제공하여
Prometheus 모니터링 시스템을 추가로 구성할 수 있습니다 . prometheus_scrape_configs이러한
옵션을 사용하면 특정 모니터링 요구 사항을 충족하도록 Prometheus 구성을 지정할 수 있다.

container_runtime=containerd [default:docker] // 컨테이너 런타임 변경

cloud_provider_enabled=true [defualt:false] // 오픈스택 ciner를 사용하면 true로 설정

cinder_csi_enabled=true // Cinder 서비스의 CSI 드라이버 사용

 


삭제 중 발생 에러

cluster, instance, network 모두 삭제가 잘 되었지만 trusts라는 리소스가 삭제에서 실패 내역 발생

이후 사용에 당장 문제는 없었으나 어떤 문제가 생길지 확인 필요

 

Master 2개와 worker 1개로 구성해서 배포해보았으나 mysql Too many connection 에러

  • galera 컨테이너의 mysql에서 set global max_connections=2400;으로 조정
  • 해결

'Openstack' 카테고리의 다른 글

Openstack Bridge, Port 수동 작업  (0) 2024.05.23
Openstack Galera clustering 복구  (0) 2024.05.23
Openstack RabbitMQ unsynchronized error  (0) 2024.05.23
Openstack Senlin  (0) 2024.05.23
Openstack DNS lookup  (0) 2024.05.23