11. 쿠버네티스 자동화 프로비저닝_change
1. Infrastructure as Code (IaC)
인프라의 설정, 프로비저닝, 관리 등을 코드로 작성하여 자동화하는 방법론
1.1 Ansible 기능
Ansible은 Red Hat에서 개발한 오픈 소스 자동화 도구로, IaC를 실현하는 데 널리 사용
(1) 프로비저닝(Provisioning)
Ansible을 사용하여 서버를 생성하고, 네트워크 설정을 구성하며, 클라우드 리소스를 관리할 수 있습니다.
(2) 구성 관리(Configuration Management)
서버에 소프트웨어 패키지를 설치하고, 설정 파일을 배포하며, 서비스 상태를 관리합니다.
(3) 배포(Deployment)
애플리케이션을 배포하고, 업데이트하며, 롤백할 수 있습니다.
(4) 오케스트레이션(Orchestration)
여러 서비스와 애플리케이션 간의 작업 흐름을 관리합니다.
Ubuntu Repo 이슈
apt-get clean
rm -rf /var/lib/apt/lists/*
apt-get update -o Acquire::CompressionTypes::Order::=gz
python 설치
root@cp-k8s:~/ansible# apt install -y python3.10 python3.10-venv
root@cp-k8s:~/ansible# python3.10 -m venv /opt/python3.10-venv
root@cp-k8s:~/ansible# source /opt/python3.10-venv/bin/activate
(python3.10-venv) root@cp-k8s:/opt# pip install ansible
1.2 파일 생성 예제
이해하기 쉽도록 root 패스워드 및 등록을 진행합니다.
#cat /etc/hosts
192.168.2.10 cp-k8s
192.168.2.101 w1-k8s
192.168.2.102 w2-k8s
192.168.2.103 w3-k8s
cp-k8s에서 ssh-keygen 생성
# ssh-keygen
모든 노드 root 패스워드 설정
root / vagrant
cp-k8s에서 모든 노드의 root로 접근할 수 있도록 등록
# ssh-copy-id root@cp-k8s
# ssh-copy-id root@w1-k8s
# ssh-copy-id root@w2-k8s
# ssh-copy-id root@w3-k8s
(1) 인벤토리 파일 (hosts)
(2) Playbook (file_management.yaml)
(3) 실행
(4) 확인
2. kubespray (Ansible을 이용한 kubernetes 배포)
Kubernetes 클러스터를 설치하고 관리하기 위한 오픈소스 프로젝트
Ansible Playbook과 설정 파일을 사용하여 다양한 환경에서 Kubernetes 클러스터를 자동화하고 쉽게 배포
2.1 python 및 가상환경 설치
2.2 Kubespray 구성
kubespray 소스 다운로드
디렉토리 이동
inventory
2.3 Kuberntes 배포
ssh 접속 확인
클러스터 배포
node 상태 확인
3. Rancher Desktop
3.1 Rancher Desktop 특징
단순 설치 macOS 및 Windows 사용자는 단순히 해당 설치 프로그램을 다운로드하여 실행할 수 있습니다. 리눅스 사용자는 인기 있는 패키지 관리자를 통해 설치할 수 있습니다. 자동으로 새로운 버전을 다운로드하고 설치하는 자동 업그레이드 기능(옵션).
구성 옵션
기본 구성과 함께 사용하거나 필요에 맞게 사용자 지정할 수 있습니다.
컨테이너 엔진, Kubernetes 버전, 응용 프로그램 기능 사용/사용 안 함을 선택할 수 있습니다. 네트워킹 설정을 구성하고 컨테이너 저장소, 레지스트리 등에 대한 액세스를 제어하는 옵션입니다.직관적 그래픽 사용자 인터페이스
사용자 친화적인 GUI 기능, 대시보드
이미지, 컨테이너, 애플리케이션 구성 등을 관리하기 위해 GUI 기능을 통해 잘 생각했습니다.로컬 쿠버네티스 리소스를 탐색하고 관리하는 데 도움이 되는 풀 블로운 클러스터 대시보드입니다.
컨테이너 공구 체인
빌드, 풀, 푸시, 스캔 이미지. 컨테이너 실행.
컨테이너 기반 개발 워크플로우에서 일상적인 작업을 지원하는 CLI 및 GUI 기반 기능. 클라우드 네이티브 에코시스템의 기타 도구인 인기 있는 IDE와 잘 통합됩니다.원활한 Kubernetes 업그레이드
Kubernetes 업그레이드가 워크로드에 미치는 영향을 쉽게 테스트합니다.
Kubernetes 업그레이드를 워크로드에 원활하게 적용할 수 있는 옵션을 제공하여 운영 환경에 영향을 미치기 전에 문제를 탐지할 수 있습니다.번들 유틸리티
인기 있는 도구를 즉시 사용할 수 있습니다.
도커, nerdctl, kubectl, hell 등과 같은 인기 있는 오픈 소스 CLI 도구의 최신 버전이 포함되어 있어 이러한 도구를 별도로 얻고 관리할 필요가 없습니다.
3.2 Rancher Desktop 설치
참고) https://rancherdesktop.io/