반응형

쿠버네티스? 도커 ?

한줄 이해하기 : 쿠버네티스가 아빠, 도커가 아들님 ->  아빠가 아드님에게 심부름을 시킨다.

사랑은 가슴으로 시킨다~ 


 

도커는 쿠버네티스가 오케스트레이션하는 컨테이너 런타임으로 사용할 수 있다.

쿠버네티스가 노드에 대해 포드를 예약하면 해당 노드의 kubelet이 지정된 컨테이너를 실행하도록 Docker에 오퍼레이션을 한다.

 

서론이 길었다. (나도 좀 길고 싶다.)

 

A. swap 안녕

sudo swapoff -a && sudo sed -i '/swap/s/^/#/' /etc/fstab

 

B.Docker, containerd 설치

 Docker, containerd 설치 (모든 master, worker node)

Kubernetes 는 컨테이너 기반으로 작동함에 따라 Docker, containerd 를 우선 설치가 필요하다.

containerd 는 OCI 표준에 부합하게 새로 만든 Container Runtime 임네다~

 

B-a. 패키지 업데이트

레파지토리 업뎃~

sudo apt-get update 

아래 설치 필수~
sudo apt-get install -y \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

Doker 레파지토리 추가~

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

 

B-c. Docker, containerd 설치


sudo apt-get install -y docker-ce docker-ce-cli containerd.io
sudo docker version

 

레이니즘 버금가는 귀차니즘.... 한줄로 명령어를 줄줄이 소세지로 날려준다.
(명령어 설명 : os부팅 시, docker 실행해라~ 컨테이너 실행해라~ 지금 시작해라~)

sudo systemctl enable docker;sudo systemctl start docker;sudo systemctl enable containerd;sudo systemctl start containerd;

 

C. 도커 설정

로그사이즈 지정 및 source 반영하기

 

sudo mkdir -p /etc/docker
cat <<EOF | sudo tee /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF

sudo systemctl daemon-reload
sudo systemctl restart docker

 

 

 

이 또한 스크립트로 만들고 싶다.

한방에 설치가 되게... 

 

 

-5분 뒤- 

자동 설치 cli~~

wget https://storage.soowim.co.kr/Kubernetes/Docker/Docker_install.sh

sudo chmod ./Docker_install.sh;sh Docker_install;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형
반응형

마스터 노드에서만 진행합니다 !

Pod 간 통신을 위한 add-on Weave Net works 을 설치합니다.

kubectl apply -f https://github.com/weaveworks/weave/releases/download/v2.8.1/weave-daemonset-k8s.yaml

kubectl get node

 

노드들 status  Ready~~

반응형
반응형

sudo snap install helm --classic

 

 

반응형
반응형

맛간의 쿠버네티스! (본론 -> 스크롤 내려서 A. 부터 보시오 )

2020년 하반기 (쿠버v1.24)부터는 도커심 기본 지원 중단을 때렸습니다. (도커 공부하던 사람은 마이 아푸네요...)

 

하지만, BUT, 그러나 언제나 애니웨이 !!  솟아날 구멍은 있다

 

개발 도구 사용 및 쿠버네티스를 지원하는 컨테이너 런타임을 사용!

 

미란티스(Mirantis)에서 개발한 도커심의 외부 대체품인 크리도커드(cri-dockerd)

 

개발은 여전히 도커로 진행하되, 이를 실행하는 컨테이너 런타임만 다른 것으로 바꾸면 큰 불편 없이 익숙한 환경에서 쿠버네티스를 사용할 수 있어요!

Kuber#1~3 까지 이미 모든 준비를 했기에, 그냥 궈궈 마라샹 궈 하면 되는 상황인데 
갑자기 생각나서 적어봤슴네다.

 

아래 구조로 진행 궈궈

 

 

A. 마스터 노드

master node에서

sudo kubeadm init

A-a. .if error?

애러가 ~ 나셨나요 ???

[ERROR CRI]: container runtime is not running

-해결방법-

/etc/containerd/config.toml 열어서  disabled_plugins 항목에서 CRI  주석 처리~

systemctl restart containerd

sudo kubeadm init

내래 애러 따위 삽질로 퍼내겠습네다. 

 

 

 

마스터 노드에서 토큰 값과 해시를 조회 한다.

kubeadm token list;openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
;

 

 

Token: 9v87ma.w7rek3zwwfdmrvqx

Hash: cc17337904d4c3f7bbae5d8d2de5a479b2829677603d5c80e345de069c72f980

 

A. 워커노드 kubeadm join

폰번호 땃으니 이제 쪼인하자

sudo kubeadm join 210.216.165.207:6443 --token 9v87ma.w7rek3zwwfdmrvqx --discovery-token-ca-cert-hash sha256:cc17337904d4c3f7bbae5d8d2de5a479b2829677603d5c80e345de069c72f980

 

HOXY 애러가 낫나유 ?https://soowim.tistory.com/73

 

 

마스터  노드에서 확인.

kubectl get nodes -o wide

 

노드를 확인 할 수 있다. 

나이 따~

 

이렇게 여러대의 서버를 각각 용도를 나누어 하기와 같이 구성이 가능하다.

간략 설명  쿠버네티스 마스터 노드와 워커 노드

마스터 노드(컨트롤 플레인)에서는 클러스터를 관리하고 클러스터의 기능을 실행한다. 단일 마스터 노드에서 실행하거나 여러 노드로 분할  복제되어 고가용성을 보장할  있는 여러 구성요소로 구성   있다.

·       API Server : 사용자와 컨트롤 플레인과 통신하는 쿠버네티스 API

·       Scheduler : 애플리케이션을 예약하는 스케줄러로, 배포 가능한  구성 요서에 워커 노드 할당을 담당

·       Control Manager : 구성 요소 복제, 워커 노드 추적, 노드 장애 처리  클러스터 기능을 실행

·       etcd : 클러스터 구성을 저장하는 분산 데이터 스토리지  

 

워커 노드는 컨테이너화된 애플리케이션을 실행하는 시스템으로 서비스 실행, 모니터링을 제공한다.

·       Kubelet : API 서버와 통신하고 노드에서 컨테이너를 관리

·       Kube-proxy : 애플리케이션 구성 요소 간에 네트워크 트래픽을 분산하는 쿠버네티스 서비스 프록시

 

 

반응형

+ Recent posts