일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Reversing
- sbin
- 2020정보처리기사
- 기사
- Network
- 리버싱
- 쿠버네티스자격증
- 오라클클라우드
- 정처기기출
- 레지스터
- 정보처리기사필기
- 정처기필기
- 정보처리기사
- 2020정처기
- 리눅스#Linux
- 쿠버네티스
- 역공학
- CKA후기
- oraclecloud
- 네트워크
- 리버스엔지니어링
- k8s
- 정처기
- IP
- TCP
- kubernetes
- 프로토콜
- root디렉토리
- 정보처리기사기출
- 쿠버네티스환경구축
- Today
- Total
Be Expert
[Kubernetes] 쿠버네티스 환경 구축하기 (vm) 본문
VM 3 대 (최소 2대)
-
Master node로 사용할 VM 1대 : control plane으로 쿠버네티스 클러스터를 관리할 컨트롤 타워라고 생각하면 된다.
-
Worker node로 사용할 VM 2대 : container로 이루어진 POD가 올라갈 노드.
-
OS: CentOS 7 ( Ubuntu, RHEL등등 도 가능합니다)
1 . Docker 설치 ( docs.docker.com/engine/install/centos/ )
( 마스터와 모든 노드에서 )
$ sudo yum install -y yum-utils
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum install -y docker-ce docker-ce-cli containerd.io
$ sudo systemctl start docker
2 . kubeadm, kubectl, kubelet 설치
( http://kubernetes.iokubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ )
( http://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/ )
( 마스터와 모든 노드에서 )
-
SWAP disabled
$ sudo swapoff -a && sed -i '/swap/s/^/#/' /etc/fstab
2.
$ cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
$ sudo sysctl -system
3. 방화벽 disable
$ sudo systemctl stop firewalld
$ sudo systemctl disable firewalld
4. Set SELinux in permissive mode (effectively disabling it)
$ sudo setenforce 0
$ sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
5. kubeadm, kubelet, kubectl 설치
$ cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl
EOF
$ sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
$ systemctl start kubelet && systemctl enable kubelet
3 . kubeadm - master, worker node 구성
(※ 앞에 M# 표시는 Master Node로 사용할 VM에만 입력하는 명령어, N1,2 # 표시는 Worker Node로 사용할 VM에만 입력하는 명령어 입니다.)
M# kubeadm init
마지막 라인에 아래와 같은 명령어와 함께 토큰이 출력되면 메모장에 복사하기
kubeadm join 10.100.0.104:6443 --token fablrz.d4hy4g8sfdxk4q1r \
--discovery-token-ca-cert-hash sha256:d5b13625d8e089883acd5c39b4ec738a8753c59f07a7f92ee863fed83cce432e
kubeadm init 명령실행시 master에 kubernetes 컴포넌트들이 생성된다. init 명령 이후에 output을 살펴보면 위와 같은 토큰뿐만 아니라 아래와 같은 명령어를 알려준다.
M# mkdir -p $HOME/.kube
M# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
M# sudo chown $(id -u):$(id -g) $HOME/.kube/config
Installing Container Network Interface(CNI) based Pod network add-on ( Pod간에 통신하기 위한 설치)
- 이 실습에서는 Weave Net을 설치합니다. (Calico, GCE 등이 있습니다)
M# kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
M# kubectl get nodes
// 결과는 master node로 지정했던 VM만 확인될 것입니다.
워커노드로 지정한 VM에서 메모장에 복사해놨던 토큰이 포함된 명령어를 입력합니다. (아래 명령어는 예시입니다)
N1,2 # kubeadm join 10.100.0.104:6443 --token fablrz.d4hy4g8sfdxk4q1r
--discovery-token-ca-cert-hash sha256:d5b13625d8e089883acd5c39b4ec738a8753c59f07a7f92ee863fed83cce432e
M# kubectl get nodes
//아래 그림은 워커 노드가 3개입니다. 실습에서는 2개.
'Kubernetes' 카테고리의 다른 글
[Kubernetes] CKA (Certified Kubernetes Administrator) 자격증 합격 후기와 팁 (0) | 2020.12.09 |
---|