5 쿠버네티스의 기본
5.1 아키텍처
※ 쿠버네티스는 마스터와 노드로 구성되고, 각각의 기능과 역할 그리고 구성 요소를 확인
※ 이전까지 docker까지 설치하고 명령어를 알아봤다. Kubernetes를 우분투 20.04 버전에 설치하는 순서를 알아본다.
sudo -i
apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet kubeadm kubectl
## 자동 업데이트 방지
apt-mark hold kubelet kubeadm kubectl
kubeadm init
- 명령어 정리는 위와 같다. 캡처버전을 통해 어떻게 풀어 나가야 하는지 설명하겠다.
- kubelet kubeadm kubectl을 설치해준다.
- kubeadm init
kubectl 명령어를 위한 설치를 진행
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=/etc/kubernetes/admin.conf
- 해당 config파일이 어떻게 생겨먹은건지 몰라서, 검색을 열심히 했는데 이것까지 다루는 블로그가 없었다.
뭐 대충 이렇게 생긴 config
# 정상적으로 kubectl이 설치되었는지 확인한다
kubectl cluster-info
※ 쿠버네티스 자동완성 툴
apt-get install bash-completion
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
# bash 다시 로드
exec bash
※ kubectl convert 플러그인 설치
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl-convert"
sudo install -o root -g root -m 0755 kubectl-convert /usr/local/bin/kubectl-convert
# 플러그인이 정상적으로 설치되었는지 확인
kubectl convert --help
참고링크
리눅스에 kubectl 설치 및 설정
시작하기 전에 클러스터의 마이너(minor) 버전 차이 내에 있는 kubectl 버전을 사용해야 한다. 예를 들어, v1.29 클라이언트는 v1.28, v1.29, v1.30의 컨트롤 플레인과 연동될 수 있다. 호환되는 최신 버전
kubernetes.io
★ kubectl에서 노드를 분리
MASTER NODE
kubectl get pods --all-namespaces
오류!! 오류!! 아래의 코드를 참조해서 진행한다.
kubeadm reset
# kubeadm init을 초기화 해준다
swapoff -a && sed -i '/swap/s/^/#/' /etc/fstab
modprobe br_netfilter
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
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 reboot
# preserve_hostname: false 를 true로 값을 변경해준다
preserve_hostname: true
# default cidr로 설정한다.
kubeadm init --pod-network-cidr=10.244.0.0/16
mkdir -p ~/.kube
sudo cp /etc/kubernetes/admin.conf ~/.kube/config
sudo chmod 644 ~/.kube/config
sudo chown $(id -u):$(id -g) ~/.kube/config
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl get pods --all-namespaces
위의 상태가 되면 MASTER NODE의 구성이 끝났다.
참고한 블로그 링크
내가 보기 위한 쿠버네티스 정리글 - 3 (cluster)
저번 챕터에서는 구축하기 편하게 ssh로 vm에 접속하기 위한 환경세팅을 구축하였다. 오늘은 저번에 이어서 쿠버네티스 클러스터를 이어서 구축할 것이다. 먼저 쿠버네티스 클러스터를 작성하기
sws1223.tistory.com
Kubeadm을 사용하여 쿠버네티스 구축해보기
kubeadm 을 사용하여 k8s 클러스터 구성을 실습해 보겠습니다.실습 환경은 AWS Lightsail Linux Ubuntu 20.04 LTS 이며, 2CPU, 4Gi Memory 스펙을 가진 VM 3대(마스터1 - 워커2)를 사용합니다.메모리 스왑 기능을 비활
velog.io
[Kubernetes] 쿠버네티스 kube-flannel CrashLoopBackOff 해결 방법 (Error registering network: failed to acquire lease: no
쿠버네티스 kube-flannel CrashLoopBackOff 해결 방법 (Error registering network: failed to acquire lease: node "node1" pod cidr not assigned) 아래와 같이 kube-flannel이 CrashLoopBackOff가 발생하였습니다. 로그를 확인해본 결과 E
nirsa.tistory.com
'개발 > 클라우드 엔지니어' 카테고리의 다른 글
5. 쿠버네티스의 기본 (0) | 2024.01.24 |
---|---|
우분투에 쿠버네티스 설치하기 2 (1) | 2024.01.18 |
우분투에 쿠버네티스 설치하기 1 (0) | 2024.01.17 |
2 컨테이너의 이해 (0) | 2024.01.16 |
1. 쿠버네티스란? (1) | 2024.01.15 |