티스토리 뷰
1.3 vagrant 실행
vagrantfile이 있는 위치에서 vagrant up명령어를 입력하면 virtualbox에서 vm이 생성됩니다.
vagrant up
1.4 원격접속
putty같은 ssh원격접속 도구를 이용하여 [그림3]에서 설정한 IP로 접속하실 수 있습니다.
- 계정: vagrant
- 비밀번호: vagrant
2. 서버 설정
이 챕터에서는 kubespray를 실행하기 위한 설정과정을 다룹니다.
2.1 공통설정
bootstrap서버를 제외한 모든 서버에 아래 명령어를 실행합니다. swap메모리 비활성화, ubuntu방화벽을 비활성화 합니다.
swapoff -a
sed -i '/swap/d' /etc/fstab
systemctl stop ufw
systemctl disable ufw
2.2 bootstrap서버 설정
2.2.1 kubespray 설치
kubespray는 ansible을 이용하여 쿠버네티스를 설치합니다. ansible을 사용하기 위해 python3이 필요합니다.
python3을 설치하고 python 가상환경을 활성화 합니다.
[root 계정으로 실행]
apt update
apt upgrade
[vagrant 계정으로 실행]
# python3 설치
sudo apt install python3-pip python3-setuptools virtualenv -y
# python 가상환경 활성화
virtualenv --python=python3 venv
. venv/bin/activate
git clone을 사용하여 kubespray git프로젝트르 다운로드 받습니다.
git clone https://github.com/kubernetes-sigs/kubespray
kubespray실행에 필요한 python 패키지를 설치합니다.
cd kubespray
pip install -r requirements-2.11.txt
2.2.2 ssh키 복사
ansible은 각 서버가 실행할 스크립트를 ssh통신으로 전송합니다. 그러므로 ssh통신을 위한 키 등록과정이 필요합니다.
bootstrap서버에서 ssh키를 생성합니다.
ssh-keygen -t rsa
생성한 키를 ssh-copy-id명령어로 쿠버네티스 클러스터 서버에 복사합니다.
영상참고: https://youtu.be/12vNy4IvF14?t=849
ssh-copy-id vagrant@192.168.25.41
ssh-copy-id vagrant@192.168.25.42
ssh-copy-id vagrant@192.168.25.43
ssh-copy-id vagrant@192.168.25.44
ssh-copy-id vagrant@192.168.25.45
ls ~/.ssh
2.2.3 ansible 인벤토리파일 설정
ansible 인벤토리 파일을 수정합니다. 인벤토리 파일은 ansible이 스크립트를 실행할 대상을 설정하는 곳입니다. 인벤토리 파일은 샘플파일을 복사한 후에 편집할 수 있습니다.
vi inventory/sample//inventory.ini
[all]
node1 ansible_host=192.168.25.41 ip=192.168.25.41 etcd_member_name=etcd1
node2 ansible_host=192.168.25.42 ip=192.168.25.42 etcd_member_name=etcd2
node3 ansible_host=192.168.25.43 ip=192.168.25.43 etcd_member_name=etcd3
node4 ansible_host=192.168.25.44 ip=192.168.25.44
node5 ansible_host=192.168.25.45 ip=192.168.25.45
# ## configure a bastion host if your nodes are not directly reachable
# [bastion]
# bastion ansible_host=x.x.x.x ansible_user=some_user
[kube_control_plane]
node1
node2
node3
[etcd]
node1
node2
node3
[kube_node]
node4
node5
[calico_rr]
[k8s_cluster:children]
kube_control_plane
kube_node
calico_rr
cp -rfp inventory/sample inventory/mycluster
vi inventory/mycluster/inventory.ini
$cd /home/master/kubespray
$ansible-playbook -b -i inventory/k8s_cluster/inventory.ini scale.yml --limit etcd,new-nodes
[그림4]와 같이 인벤토리 파일을 설정합니다. node1,2,3은 controlplane노드이고 node4,5는 worker노드입니다.
[all]
node1 ansible_host=192.168.25.41 ip=192.168.25.41 etcd_member_name=etcd1
node2 ansible_host=192.168.25.42 ip=192.168.25.42 etcd_member_name=etcd2
node3 ansible_host=192.168.25.43 ip=192.168.25.43 etcd_member_name=etcd3
node4 ansible_host=192.168.25.44 ip=192.168.25.44
node5 ansible_host=192.168.25.45 ip=192.168.25.45
# ## configure a bastion host if your nodes are not directly reachable
# [bastion]
# bastion ansible_host=x.x.x.x ansible_user=some_user
[kube_control_plane]
node1
node2
node3
[etcd]
node1
node2
node3
[kube_node]
node4
node5
[calico_rr]
[k8s_cluster:children]
kube_control_plane
kube_node
calico_rr
그림4 인벤토리 파일
2.2.4 쿠버네티스 클러스터 설치 설정
다음 쿠버네티스 major버전에서는 CRI에서 도커가 제외됩니다. 그러므로 설치할때부터 CRI를 containerd로 변경하겠습니다.
총 2파일을 설정하면 됩니다.
영상참고: https://youtu.be/12vNy4IvF14?t=1035
vi inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml
container_manager: containerd
vi inventory/mycluster/group_vars/etcd.yml
etcd_deployment_type: host
3. 설치
모든 설정이 끝났습니다. 단 한줄의 명령어로 kubepray를 실행하실 수 있습니다. ansible-playbook명령어를 실행하면 되는데요. 이 때, root권한으로 실행됩니다.
ansible-playbook -i inventory/mycluster/inventory.ini --become --become-user=root cluster.yml
설치가 성공하면 오류메세지가 표시되지 않고 모두 OK메세지가 출력됩니다.
흠.. 아래와 같이 되어야 하는데 ''
[그림5] kubespray 설치 성공
4. kubectl 사용
kubectl명령어는 controlplane노드에서 실행할 수 있습니다. vagrant계정에서는 kubeconfig파일이 없어 kubectl명령어를 이용하실 수 없습니다. root계정으로 스위칭한 후 kubectl명령어를 사용해야 합니다.
- Total
- Today
- Yesterday
- 튜닝
- 오라클
- directory copy 후 startup 에러
- ubuntu
- K8s
- MSA
- CVE 취약점 점검
- 커널
- 5.4.0.1072
- 우분투
- [오라클 튜닝] instance 튜닝2
- startup 에러
- 버쳐박스
- 코로나19
- ORACLE 트러블 슈팅(성능 고도화 원리와 해법!)
- 오라클 트러블 슈팅(성능 고도화 원리와 해법!)
- 스토리지 클레스
- (InstantClient) 설치하기(HP-UX)
- 설치하기(HP-UX)
- [오라클 튜닝] sql 튜닝
- pod 상태
- 키알리
- 앤시블
- 쿠버네티스
- 오라클 홈디렉토리 copy 후 startup 에러
- Oracle
- 테라폼
- 트리이스
- 오라클 인스턴트클라이언트(InstantClient) 설치하기(HP-UX)
- 여러서버 컨트롤
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |