728x90
쿠버네티스는 하나의 MASTER [control-plane]와 여러 서버 NODE[node]가 존재
- MASTER를 실행시켜야 쿠버네티스가 돌아가고 있다고 할 수 있다.
- sudo kubeadm init --pod-network-cidr=10.100.0.0/16
- sudo kubeadm init --pod-network-cidr=10.100.0.0/16 -v=5 => 클러스터 구성과정을 자세히 보여줌
- pod => 도커의 컨테이너 개념으로 쿠버네티스에서 다루는 배포의 최소 단위
- 10.100.0.0/16 => 쿠버네티스가 설치된 이 PC에 존재하는 IP와 상관없이 구성 요소들끼리 통신이 가능하도록 묶는 IP 대역
**문서 -create-cluster-kubeadm
현재 리눅스 유저를 쿠버네티스 관리자 계정으로 지정
- mkdir -p $HOME/.kube
- sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
- sudo chown $(id -u):$(id -g) $HOME/.kube/config
노드 확인 명령어
- kubectl get nodes -A
- kubectl get nodes -A -o wide
POD 확인 명령어
- kubectl get pods -A
- kubectl get pods -A -o wide
칼리코(Container Network Interface 구현체) 설치
- kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.24.1/manifests/tigera-operator.yaml
- mkdir /kube
- cd /kube
- vim calico-resources.yaml
# This section includes base Calico installation configuration.
# For more information, see: https://projectcalico.docs.tigera.io/master/reference/installation/api#operator.tigera.io/v1.Installation
apiVersion: operator.tigera.io/v1
kind: Installation
metadata:
name: default
spec:
# Configures Calico networking.
calicoNetwork:
# Note: The ipPools section cannot be modified post-install.
ipPools:
- blockSize: 26
cidr: 10.100.0.0/16
encapsulation: VXLANCrossSubnet
natOutgoing: Enabled
nodeSelector: all()
---
# This section configures the Calico API server.
# For more information, see: https://projectcalico.docs.tigera.io/master/reference/installation/api#operator.tigera.io/v1.APIServer
apiVersion: operator.tigera.io/v1
kind: APIServer
metadata:
name: default
spec: {}
- kubectl create -f calico-resources.yaml
생성확인
- watch kubectl get pods -n calico-system
- status가 Ready로 바뀐 것을 확인 가능
단일 노드로 구성하기 위해 마스터에서도 파드 배포 가능하게 만들기
- kubectl taint nodes --all node-role.kubernetes.io/control-plane-
- taint(얼룩)는 일종의 DB로 치면 제약사항이다. taint가 있으면 제약사항을 주는 것인데 -를 줌으로써 제약사항을 뺀다. 실제로 쿠버네티스에서는 마스터는 남는 서버를 가진 노드들에게 요청을 하지만 현재 실습환경에서는 마스터하나만을 다루고 있기 때문에 딜레이가 생긴다. 따라서 마스터에서 파드 배포가 가능하게 설정이 필요하다.
kubectl 자동완성 설정
- 탭하여 명령어 자동완성 기능 설정
sudo yum install bash-completion -y
source /usr/share/bash-completion/bash_completion
kubectl completion bash | sudo tee /etc/bash_completion.d/kubectl > /dev/null
echo 'alias k=kubectl' >>~/.bashrc
echo 'complete -o default -F __start_kubectl k' >>~/.bashrc
source /usr/share/bash-completion/bash_completion
# 터미널 다시 접속
'IT' 카테고리의 다른 글
클래스와 객체, 인스턴스 (0) | 2022.11.16 |
---|---|
오버로딩과 오버라이딩 (0) | 2022.11.16 |
Kubernetes(쿠버네티스) 1 설치 및 활성화 (1) | 2022.11.13 |
JWT와 Security를 활용한 인증, 인가 구현 3 ( REST API 구현) (0) | 2022.11.11 |
Spring Boot로 REST API 구현을 위한 ResponseEntity<> 커스텀 (0) | 2022.11.11 |