티스토리 뷰
ssh 관련 옵션 적용
eval $(ssh-agent)
ssh-add /root/.ssh/master
kubespary를 활용하여 on-premise 구성 진행
# 사전작업으로 마스터노드에서 워커 노드로 ssh 인증키 방식으로 접근이 가능해야 함
# yum 업데이트 진행
yum update && upgrade -y
# yum 기본 패키지 설치
yum -y install epel-repo ansible git
# ansible 버전확인
ansible --version
[root@master ~]# ansible --version
ansible 2.7.16
config file = /etc/ansible/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.6/site-packages/ansible
executable location = /usr/local/bin/ansible
python version = 3.6.8 (default, Aug 7 2019, 17:28:10) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
# OS 스왑영역 최소화
swapoff -a
# OS 영역 네트워크 패킷 포워딩 활성화
sysctl -w net.ipv4.ip_forward=1
# python3 위치 확인
which python3
# python3 rpm 설치 1
yum install -y epel-release.noarch
yum install -y https://repo.ius.io/ius-release-el7.rpm
# python3 rpm 설치 2
yum install -y python36u python36u-libs python36u-devel python36u-pip
# kubespary git clone
git clone https://github.com/kubernetes-incubator/kubespray.git
# kubespary 폴더 이동
cd kubespray
# ansible 구성 패키지 설치
pip3 install -r requirements.txt
# kubernetes cluster 원본 복사
cp -rfp inventory/sample inventory/mycluster
# kubernetes 아이피 대역 입력
declare -a IPS=(10.128.0.2 10.128.0.4 10.128.0.5 10.128.0.6)
# 아이피를 입력한 값을 해당 파일에 입력
CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]}
# kubernetes 구성 관련 변수 내용 1
vim inventory/mycluster/group_vars/all/all.yml
# kubernetes 구성 관련 변수 내용 2
vim inventory/mycluster/group_vars/k8s-cluster/k8s-cluster.yml
# kubernetes ansible 구성 시작
ansible-playbook -i inventory/mycluster/hosts.yaml --user=root cluster.yml
# 약 10분 ~15분 사이 자동으로 클러스터 구성 완료
[root@master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
node1 Ready master 8d v1.16.8
node2 Ready 8d v1.16.8
node3 Ready 8d v1.16.8
node4 Ready 8d v1.16.8