[Kubernetes] 개요
Updated:
개요
- https://kubernetes.io/ko/docs/home/
- 배포, 스케일링, 그리고 컨테이너화된 애플리케이션의 관리를 자동화 해주는 오픈 소스 컨테이너 오케스트레이션 엔진
설치
- 환경
- OS
- CentOS Stream 9
- master node ip
1.1.1.1, 2.2.2.2, 3.3.3.3
- worker node ip
4.4.4.4, 5.5.5.5
1.1.1.1
에서 설치 작업을 수행하는 것으로 가정
- OS
- 모든 노드에 대해 호스트 네임 설정
1.1.1.1
접속 후hostnamectl set-hostname master-node-01
수행2.2.2.2
접속 후hostnamectl set-hostname master-node-02
수행3.3.3.3
접속 후hostnamectl set-hostname master-node-03
수행4.4.4.4
접속 후hostnamectl set-hostname worker-node-01
수행5.5.5.5
접속 후hostnamectl set-hostname worker-node-02
수행
- ssh key 생성 및 모든 노드에 복사
- ssh-keygen -t rsa
- ssh-copy-id root@1.1.1.1
- ssh-copy-id root@2.2.2.2
- ssh-copy-id root@3.3.3.3
- ssh-copy-id root@4.4.4.4
- ssh-copy-id root@5.5.5.5
- kubespray
git clone https://github.com/kubernetes-sigs/kubespray.git
cd ./kubespray
dnf install python-pip
pip install -r requirements.txt
cp -rfp inventory/sample inventory/mycluster
declare -a IPS=(1.1.1.1 2.2.2.2 3.3.3.3 4.4.4.4 5.5.5.5)
CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]}
vim inventory/mycluster/hosts.yaml
all: hosts: master-node-01: ansible_host: 1.1.1.1 ip: 1.1.1.1 access_ip: 1.1.1.1 master-node-02: ansible_host: 2.2.2.2 ip: 2.2.2.2 access_ip: 2.2.2.2 master-node-03: ansible_host: 3.3.3.3 ip: 3.3.3.3 access_ip: 3.3.3.3 worker-node-01: ansible_host: 4.4.4.4 ip: 4.4.4.4 access_ip: 4.4.4.4 worker-node-02: ansible_host: 5.5.5.5 ip: 5.5.5.5 access_ip: 5.5.5.5 children: kube_control_plane: hosts: master-node-01: master-node-02: master-node-03: kube_node: hosts: worker-node-01: worker-node-02: etcd: hosts: master-node-01: master-node-02: master-node-03: k8s_cluster: children: kube_control_plane: kube_node: calico_rr: hosts: {}
ansible-playbook -i inventory/mycluster/hosts.yaml --become --become-user=root cluster.yml
삭제
cd ./kubespray
ansible-playbook -i inventory/mycluster/hosts.yaml --become --become-user=root reset.yml