반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- kubernetes
- 리눅스
- os
- 도커
- C++
- swift 클로저
- k8s
- 운영체제
- ios
- 도커 컨테이너
- centOS7
- 클라우드
- 도커 이미지
- 데브옵스
- Swift
- linux
- devops
- centOS
- NGINX
- 인프라
- AWS
- docker
- 부스트코스
- 쿠버네티스
- boj
- 프로세스
- Python
- 네트워크
- 컨테이너
- 도커 명령어
Archives
- Today
- Total
귀염둥이의 메모
[K8s] Vagrant와 Kubespray를 이용한 쿠버네티스 환경 구성(2) 본문
반응형
Kubespray
- Kubeadm 과 Ansible을 이용한 쿠버네티스 클러스터 배포 도구
- 별도의 로드 밸런서를 사용하지 않고 노드 각각의 nginx가 리버스 프록시로 실행됨
- nginx-proxy가 전체 마스터 노드를 바라보는 구조
control-plane에서 설정 및 설치
# 약어 등록하기
sudo vim /etc/hosts
ssh-keygen
ssh-copy-id control-plane
ssh-copy-id node1
ssh-copy-id node2
# vagrant 유저는 sudo 권한이 있음
sudo apt update # 현재 가지고있는 패키지들의 새로운 버전 리스트 구성
sudo apt upgrade -y # 이 명령어를 해야지 실제로 최신버전으로 업데이트 됨
sudo apt install python3 python3-pip git -y
# kubespray 설치 - v2.14.0 (그마나 모두 지원하는 최신버전)
git clone --single-branch --branch=release-2.14 https://github.com/kubernetes-sigs/kubespray.git
cd kubespray
sudo pip3 install -r requirements.txt
Ansible 관련 인벤토리
# 디렉토리 복사 해서 사용하기 mycluster
cp -rfp inventory/sample/ inventory/mycluster
vi inventory/mycluster/inventory.ini
# ## Configure 'ip' variable to bind kubernetes services on a
# ## different ip than the default iface
# ## We should set etcd_member_name for etcd cluster. The node that is not a etcd member do not need to set the value, or can set the empty string value.
[all]
node1 ansible_host=192.168.56.21 ip=192.168.56.21
node2 ansible_host=192.168.56.22 ip=192.168.56.22
control-plane ansible_host=192.168.56.11 ip=192.168.56.11
# ## configure a bastion host if your nodes are not directly reachable
# [bastion]
# bastion ansible_host=x.x.x.x ansible_user=some_user
[all:vars]
ansible_python_interpreter=/usr/bin/python3
[kube-master]
control-plane
[etcd]
control-plane
[kube-node]
node1
node2
[calico-rr]
[k8s-cluster:children]
kube_control_plane
kube_node
calico_rr
addons.yml 설정
vi inventory/mycluster/group_vars/k8s_cluster/addons.yml
# 수정할 값
ingress_nginx_enabled: true
metrics_server_enabled: true
metallb_enabled: true
metallb_ip_range:
- "192.168.56.50-192.168.56.99"
metallb_protocol: "layer2"
k8s-cluster.yml
vi inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml
# 쿠버네티스 내부 네트워크 설정, dns, 클러스터 구성 인증키 경로 등이 있다
# must be set to true for MetalLB to work
kube_proxy_strict_arp: true
쿠버네티스 클러스터 배포 (오래 시간 소요)
ansible-playbook -i inventory/mycluster/inventory.ini -b cluster.yml -v
반응형
'Infra & Devops > Kubernetes' 카테고리의 다른 글
[K8s] 쿠버네티스 아키텍처 (Kubernetes Architecture), 구성 요소 (0) | 2021.10.08 |
---|---|
[K8s] kube-proxy (0) | 2021.10.07 |
[K8s] 파드(Pod) 구성 패턴 (0) | 2021.10.05 |
[K8s] 컨테이너 프로브(Probe), 컨테이너 진단 (0) | 2021.10.05 |
[K8s] Vagrant와 Kubespray를 이용한 쿠버네티스 환경 구성(1) (0) | 2021.09.27 |
Comments