💡 핵심 요약 (Executive Summary)
본 가이드는 ansible 쿠버네티스(Kubernetes) kubespray 핵심 가이드 및 실전 아키텍처의 핵심 개념, 실전 구성 명령어 및 아키텍처 베스트 프랙티스를 다룹니다. 클라우드 네이티브 및 인프라 엔지니어링 실무에 즉시 활용 가능하도록 체계적으로 정리했습니다.
📑 Table of Contents
Reference & Guidelines (NOTE)
Host에서 systemd-resolved 사용시 CoreDNS 동작
HostNode:
systemd-resolved는/etc/resolv.conf = 127.0.0.53루프백주소로 고정한다.- 실제
/etc/systemd/resolved.conf에서 정의된 리졸브는/var/run/systemd/resolve/resolv.conf이다.
Kubelet:
- default는 HostNode의
/etc/resolv.conf를 마운트한다. - Kublet은 루프백주소
127.0.0.53에 접근할 수 없다.
Reference & Guidelines (NOTE)
Kubernetes:
- Kubelet Configuration (v1beta1)
--resolv-conf=/var/run/systemd/resolve/resolv.conf
k3s:
bash
k3s server --resolv-conf $value
curl -sfL https://get.k3s.io | sh -s - server --resolv-conf $value
Deploy Server 준비
필요 패키지 설치
bash
apt update
apt install python3-pip # python3.8.10
pip install ansible==4.10.0
#ansible==4.10.0 ,ansible-core==2.11.12 ,kubernetes_v1.24.6
#ansible==2.9.7 ,ansible-core==2.9.6 ,kubernetes_v1.23.7
pip install netaddr
apt-get install sshpass
Reference & Guidelines (NOTE)
version 변경시 uninstall 하지 않고 덮어써도 잘 작동 함
사전 준비
bash
# 각 노드정보 추가
vi /etc/hosts
# ssh-key 설정
ssh-keygen -t rsa
# 설치할 노드호스트에 pub키 복사
ssh-copy-id root@k8s-master1
Exec
Playbook setting
bash
git clone https://Enterprise Cloudlab:[email protected]/Enterprise Cloudlab/cmp-infra.git
cd ~/cmp-infra/kubernetes/ansible/kubernetes_v1.23.7/
# 호스트정보 수정
vi inventory/cmp/inventory.ini
# kube version 및 디렉토리 등 수정
vi inventory/cmp/group_vars/k8s_cluster/k8s-cluster.yml
# offline.yml은 주석처리 되어있음. 가장 우선순위
vi inventory/cmp/group_vars/all/offline.yml
Playbook 실행
bash
ansible-playbook -i inventory/$env/inventory.ini cluster.yml -vv
#ansible-playbook myplaybook.yaml -i myinventory --env-container=/path/to/offline.yaml
Detaile
Addons
‼ 폐쇄망
External Servers
OS Image 준비
- RHEL:
Package Repository 준비
- RHEL:
- DEB:
File Repository 준비
Docker Repository 준비 (Harbor)
Deploy Server
offline.yaml 수정
Playbook 실행 이후
Before: All Nodes: 외부 repository mount, etchost 등록
- RHEL: :import
bash
#harbor host 등록
vi /etc/hosts
1Cycle After: All Nodes: Harbor 접근권한 설정
bash
#harbor 권한 인증
nerdctl login harbor.Enterprise Cloud.cld
2Cycle After: Master Node: CoreDNS ConfigMap 수정
- :coredns, nodelocaldns Not Running
Leave a Reply