๋กœ์ผ“๐Ÿพ
article thumbnail
๋ฐ˜์‘ํ˜•

 

AWS EKS ๋‚˜ GCP GKE๋ฅผ ์ด์šฉํ•˜๋ฉด ์–ด๋ ต์ง€ ์•Š๊ฒŒ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํผ๋ธ”๋ฆญ ํด๋ผ์šฐ๋“œ๋ฅผ ์ด์šฉํ•˜์ง€ ์•Š๊ณ  ์˜จํ”„๋ ˆ๋ฏธ์Šค ํ™˜๊ฒฝ์—์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ๋ž€ ์‰ฌ์šด ์ผ์€ ์•„๋‹™๋‹ˆ๋‹ค. (์ตœ์†Œ ์ €ํ•œํ…Œ๋Š” ใ…œใ…œ)

 

๊ทธ๋ž˜์„œ ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” k8s ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋ณด๊ณ  ์˜จํ”„๋ ˆ๋ฏธ์Šค ํ™˜๊ฒฝ์—์„œ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์ถ•ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์ถ•์— ์ดˆ์ ์„ ๋งž์ถฐ์„œ k8s ์™€ k8s ๋‚ด ์˜ค๋ธŒ์ ํŠธ๋“ค์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์ƒ๋žตํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๋˜ํ•œ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์™€ ์›Œ์ปค ๋…ธ๋“œ์—์„œ ์ˆ˜ํ–‰ํ•  ํ–‰์œ„๊ฐ€ ๋‹ค๋ฅด๋ฏ€๋กœ ๊ฐ ๋ถ€๋ถ„๋งˆ๋‹ค ํ‘œ์‹œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 

๊ทธ๋ฆฌ๊ณ  ๋ฐ˜๋“œ์‹œ ์ง„ํ–‰ ์ˆœ์„œ๋Š” ์ง€์ผœ์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

๋งŒ์•ฝ ์„ค์น˜ ํ•˜์‹œ๋‹ค๊ฐ€ ์ž˜๋ชป๋œ ๋Š๋‚Œ์ด ๋“ ๋‹ค๋ฉด kubeadm reset ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋ฆฌ์…‹ํ•ด์ฃผ์‹œ๊ณ  ๋‹ค์‹œ ์ง„ํ–‰ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

 

์šฐ์„  ๋ฏธ๋ฆฌ ์ค€๋น„๋˜์–ด์•ผ ํ•  ํ™˜๊ฒฝ์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

  • ubuntu 20.4 ๋ฒ„์ „์˜ ๊ฐ€์ƒ ๋จธ์‹  2๋Œ€

๋งˆ์Šคํ„ฐ ๋…ธ๋“œ ์—ญํ• ์˜ ๊ฐ€์ƒ๋จธ์‹  (master)

 

์›Œ์ปค ๋…ธ๋“œ ์—ญํ• ์˜ ๊ฐ€์ƒ๋จธ์‹  (node-1)

๋ฉ”๋ชจ๋ฆฌ๋Š” 4096MB, CPU๋Š” 2์ฝ”์–ด ์ž…๋‹ˆ๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์ตœ์†Œ ๊ถŒ์ƒ์‚ฌ์–‘์ด 2048MG, CPU 2์ฝ”์–ด ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋งŒ์•ฝ ์ด๋ณด๋‹ค ์ž‘์€ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์ƒ๋จธ์‹ ์— ํ• ๋‹นํ•˜๊ฒŒ ๋  ๊ฒฝ์šฐ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋™์ž‘์‹œํ‚ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

 

๋˜ํ•œ ๊ฐ๊ฐ์˜ ๊ฐ€์ƒ๋จธ์‹ ๋“ค์€ ํ†ต์‹ ์ด ๋˜์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋„คํŠธ์›Œํฌ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

 

 

๊ฐ€์ƒ๋จธ์‹  ๋˜ํ•œ ๊ณต์œ ๊ธฐ์—์„œ IP๋ฅผ ํ• ๋‹น๋ฐ›๊ธฐ ์œ„ํ•ด์„œ ๋ธŒ๋ฆฟ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. NAT ๊ฐ™์€ ๊ฒฝ์šฐ ํ˜ธ์ŠคํŠธ OS๋ฅผ ๊ฑฐ์ณ์„œ ํ†ต์‹ ์ด ๋˜์ง€๋งŒ, ๋ธŒ๋ฆฟ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๊ฐ€์ƒ ๋จธ์‹  ์ž์ฒด๋กœ IP๋ฅผ ํ• ๋‹น๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ํ˜ธ์ŠคํŠธ OS๋ฅผ ๊ฑฐ์น  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

 

๊ฐ€์ƒ ๋จธ์‹  ๋„คํŠธ์›Œํฌ ์ข…๋ฅ˜์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ๊ณ  ์‹ถ์œผ์‹œ๋ฉด ์•„๋ž˜ ๋งํฌ๋กœ ๊ฐ€์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

[๋„คํŠธ์›Œํฌ] ๋ˆˆ์œผ๋กœ ํ™•์ธํ•ด๋ณด๋Š” Vmware Host-Only, Nat, Bridge ์ฐจ์ด

๊ฐ€์ƒ๋จธ์‹ (Vmware) ๋„คํŠธ์›Œํฌ ๋ฐฉ์‹ 3๊ฐ€์ง€ Host-only(Vmnet1), Nat(Vmnet8), Bridge(Vmnet0)๊ฐ€ ์–ด๋–ค ์ฐจ์ด๊ฐ€ ์žˆ๋Š”์ง€ ๊ฐ„๋‹จํžˆ ์‚ดํŽด๋ณธ ํ›„, ping์œผ๋กœ ๊ฐ๊ฐ์˜ ์—ฐ๊ฒฐ ์ƒํƒœ๋ฅผ ์‹ค์ œ๋กœ ํ™•์ธํ•ด๋ณด๋ ค ํ•œ๋‹ค. Host-only (Vmnet1) ์—ฐ๊ฒฐ..

liveyourit.tistory.com

 

2๋Œ€์˜ ๊ฐ€์ƒ๋จธ์‹ ์ด ์ค€๋น„๊ฐ€ ๋˜์—ˆ๋‹ค๋ฉด, ์„œ๋กœ๊ฐ„์— ํ†ต์‹ ์ด ๋˜์ง€๋Š” ํ™•์ธํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

 

์ € ๊ฐ™์€ ๊ฒฝ์šฐ ๊ฐ๊ฐ ์•„๋ž˜์˜ IP๋ฅผ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ifconfig๋ฅผ ํ†ตํ•ด์„œ ์ž์‹ ์˜ ip๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • master : 10.150.90.69
  • node-1 : 10.150.90.68
$ ifconfig
# ์ž์‹ ์˜ private ip๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค

$ ping 10.150.90.68
# TO node-1 FROM master

 

ํ†ต์‹ ์ด ๋งŒ์•ฝ ์ž˜๋œ๋‹ค๋ฉด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ตฌ์ถ•์„ ์œ„ํ•œ ์ค€๋น„๋Š” ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๋ณธ๊ฒฉ์ ์œผ๋กœ ๊ณต์‹๋ฌธ์„œ์— ๋‚˜์™€์žˆ๋Š” ์ˆœ์„œ์— ๋งž๊ฒŒ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์ถ•ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

* ๋งŒ์•ฝ ์„œ๋กœ ํ†ต์‹ ์ด ์•ˆ๋œ๋‹ค๋ฉด ๊ฐ ๊ฐ€์ƒ๋จธ์‹ ์˜ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์„ ํ™•์ธํ•ด๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

 


๊ณต์‹๋ฌธ์„œ ์‚ดํŽด๋ณด๊ธฐ

 

๊ณต์‹๋ฌธ์„œ์— ๋“ค์–ด๊ฐ€๋ณด๋ฉด ๊ฐ€์žฅ ์ฒ˜์Œ์œผ๋กœ ์œ„์™€ ๊ฐ™์€ ์•ˆ๋‚ด๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Before you begin์— ๋ช…์‹œ๋œ ์กฐ๊ฑด์„ ๋ชจ๋‘ ์ถฉ์กฑํ•ด์•ผ๋งŒ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋ˆˆ์—ฌ๊ฒจ ๋ณผ๊ฒƒ์€ ํฌ๊ฒŒ 2๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

  1. ๋ฉ”๋ชจ๋ฆฌ๋Š” 2GB, 2CPU๊ฐ€ ์ตœ์†Œ ์‚ฌ์–‘์ž…๋‹ˆ๋‹ค. 
  2. swap์„ ๋ฐ˜๋“œ์‹œ ๊บผ์•ผํ•ฉ๋‹ˆ๋‹ค.

 

์ฒซ๋ฒˆ์งธ ๊ฐ™์€ ๊ฒฝ์šฐ ๊ฐ€์ƒ ๋จธ์‹ ์„ ๊ตฌ์ถ•ํ•  ๋•Œ ํ•ด๊ฒฐ์ด ๋˜๊ณ , swap์„ disabled ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 

 


swap disabled ํ•ด์ฃผ๊ธฐ (๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์™€ ์›Œ์ปค ๋…ธ๋“œ ๋‘˜ ๋‹ค)

 

$ sudo swapoff -a  
# ์ด ๋ช…๋ น์–ด๋Š” ๊ฐ€์ƒ ๋จธ์‹  ๋ฆฌ๋ถ€ํŠธํ• ๋•Œ ๋‹ค์‹œ ์ดˆ๊ธฐํ™”๊ฐ€ ๋˜๋ฏ€๋กœ ์˜๊ตฌ์ ์œผ๋กœ swap์„ ๋„๋ ค๋ฉด
# ์•„๋ž˜ ๋ช…๋ น์–ด ๋˜ํ•œ ํ•˜์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

$ sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
# ์œ„ ๋ช…๋ น์–ด๋Š” ์ง€๊ธˆ ๋‹น์žฅ swap์„ ๊บผ์•ผํ•ด์„œ ํ•˜๋Š” ๋ช…๋ น์–ด์ด๊ณ ,
# ์•„๋ž˜ ๋ช…๋ น์–ด๋Š” ๋‚˜์ค‘์— reboot ํ–ˆ์„ ๋•Œ ์œ„ํ•ด์„œ ์‹คํ–‰ํ•˜๋Š” ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค.

 

์ž์„ธํ•œ ์‚ฌํ•ญ์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ํ™•์ธํ•ด๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

 

How do I disable swap?

I have some sensitive data in RAM that I prefer not to be on disk. How do I disable swap? I have more than enough RAM. If RAM consumption gets too high I have no problems with processes being term...

askubuntu.com

 


๋„์ปค ์„ค์น˜ ํ•ด์ฃผ๊ธฐ (๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์™€ ์›Œ์ปค ๋…ธ๋“œ ๋‘˜ ๋‹ค)

 

$ apt update && apt upgrade -y
$ apt install -y docker.io

$ docker version 
#๋„์ปค ๋ฒ„์ „ ํ™•์ธ

์œ„ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด ๋‚˜์˜จ๋‹ค๋ฉด ์ •์ƒ์ ์œผ๋กœ ์„ค์น˜ ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 


kubeadm, kubelet and kubectl ์„ค์น˜ํ•˜๊ธฐ (๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์™€ ์›Œ์ปค ๋…ธ๋“œ ๋‘˜ ๋‹ค)

 

๊ณต์‹ ๋ฌธ์„œ์— ๋‚˜์™€์žˆ๋Š” ๋Œ€๋กœ ์ง„ํ–‰ํ•ด์ค๋‹ˆ๋‹ค.

 

๊ฐ„๋‹จํžˆ ์„ค๋ช…๋“œ๋ฆฌ์ž๋ฉด

  • kubeadm : ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ์ž…๋‹ˆ๋‹ค. kubeadm ๋ง๊ณ ๋„ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€ํŠธ์ŠคํŠธ๋žฉ์€ ๋‹ค์–‘ํ•ฉ๋‹ˆ๋‹ค
  • kubelet : ๋…ธ๋“œ์—์„œ ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • kubectl : ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ์™€ ๋Œ€ํ™”ํ•˜๊ธฐ ์œ„ํ•œ cli ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.

1. Update the apt package index and install packages needed to use the Kubernetes apt repository:

$ sudo apt-get update
$ sudo apt-get install -y apt-transport-https ca-certificates curl

2. Download the Google Cloud public signing key:

$ sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg

3. Add the Kubernetes apt repository:

$ echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

 

4. Update apt package index, install kubelet, kubeadm and kubectl, and pin their version:

$ sudo apt-get update
$ sudo apt-get install -y kubelet kubeadm kubectl
$ sudo apt-mark hold kubelet kubeadm kubectl

 

5. Version check (์ด๊ฑด ์ œ๊ฐ€ ์ถ”๊ฐ€ํ•œ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค)

$ kubeadm version

 

์ด๋ ‡๊ฒŒ kubectl, kubeadm, kubelet๋ฅผ ์„ค์น˜ํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

 


k8s์™€ docker cgroup ๋งž์ณ์ฃผ๊ธฐ(๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์™€ ์›Œ์ปค๋…ธ๋“œ ๋‘˜๋‹ค)

 

cgroups(control groups์˜ ์•ฝ์ž)๋Š” ํ”„๋กœ์„ธ์Šค๋“ค์˜ ์ž์›์˜ ์‚ฌ์šฉ(CPU, ๋ฉ”๋ชจ๋ฆฌ, ๋””์Šคํฌ ์ž…์ถœ๋ ฅ, ๋„คํŠธ์›Œํฌ ๋“ฑ)์„ ์ œํ•œํ•˜๊ณ  ๊ฒฉ๋ฆฌ์‹œํ‚ค๋Š” ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

 

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค v1.22๋ถ€ํ„ฐ๋Š” ๋„์ปค์™€ cgroup์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ์„œ๋กœ ๋งž์ณ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ docker์˜ cgroup์„ cgroupfs์—์„œ systemd๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

 

 

[Docker] Kubernetes ๋ณด์•ˆ (Cgroup)

Cgroup ๋“œ๋ผ์ด๋ฒ„ cgroups(control groups์˜ ์•ฝ์ž)๋Š” ํ”„๋กœ์„ธ์Šค๋“ค์˜ ์ž์›์˜ ์‚ฌ์šฉ(CPU, ๋ฉ”๋ชจ๋ฆฌ, ๋””์Šคํฌ ์ž…์ถœ๋ ฅ, ๋„คํŠธ์›Œํฌ ๋“ฑ)์„ ์ œํ•œํ•˜๊ณ  ๊ฒฉ๋ฆฌ์‹œํ‚ค๋Š” ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. [root@ciserver ~]# ls -la /sys/fs..

waspro.tistory.com

 

๋จผ์ € Docker Cgroup์„ ํ™•์ธํ•ด์ค๋‹ˆ๋‹ค

$ docker info

cgroupfs๋กœ ๋˜์–ด์žˆ๋Š” ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

daemon.json ํŒŒ์ผ์„ ์ˆ˜์ •ํ•ด์ค๋‹ˆ๋‹ค. (์•„๋งˆ ์ด ํŒŒ์ผ์€ ์—†์œผ์‹ค ๊ฒ๋‹ˆ๋‹ค)

$ vi /etc/docker/daemon.json

vi ์—๋””ํ„ฐ๋กœ ์‹คํ–‰ ํ›„ ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค.

{
	"exec-opts": ["native.cgroupdriver=systemd"]
}

 

docker service ์žฌ๊ธฐ๋™ํ•ด์ค๋‹ˆ๋‹ค.

$ systemctl daemon-reload
$ systemctl restart docker

 

๋‹ค์‹œ Docker cgroup ํ™•์ธ์„ ํ•ฉ๋‹ˆ๋‹ค.

$ docker info | grep -i cgroup

 


kubeadm์œผ๋กœ ํด๋Ÿฌ์Šคํ„ฐ ์ƒ์„ฑํ•˜๊ธฐ(๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๋งŒ)


Creating a cluster with kubeadm ๊ณต์‹๋ฌธ์„œ๋กœ ์ด๋™ํ•˜์—ฌ ๋งˆ์ € ์ง„ํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 

 

๋“œ๋””์–ด ์„ค์น˜ํ•œ kubeadm์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

$ kubeadm init

 

 

2023/02/26 ์ผ์ž ์ถ”๊ฐ€ - kubeadm init ์ด ์•ˆ๋  ๊ฒฝ์šฐ ์•„๋ž˜ ์ฐธ๊ณ 

 

Kubeadm unknown service runtime.v1alpha2.RuntimeService · Issue #4581 · containerd/containerd

Problem Following Kubernetes official installation instruction for containerd and kubeadm init will fail with unknown service runtime.v1alpha2.RuntimeService. # Commands from https://kubernetes.io/...

github.com

 

 

swap disable, RAM 2GB, CPU 2 cores, Update Docker cgroup ์„ ํ•ด์ฃผ์…จ๋‹ค๋ฉด ๋ฌธ์ œ ์—†์ด ์‹คํ–‰์ด ์ž˜๋ฉ๋‹ˆ๋‹ค.

 

์ž˜ ์„ค์น˜ ๋˜์—ˆ๋‹ค๋ฉด ์œ„์™€ ๊ฐ™์ด ๋‚˜์˜ต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์•„๋ž˜์— kubeadm join ~ ์œผ๋กœ ๋˜์–ด์žˆ๋Š” ๊ฑฐ ๊ผญ ๋ฉ”๋ชจํ•ด ๋‘์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์›Œ์ปค๋…ธ๋“œ์—์„œ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๋กœ join ํ• ๋•Œ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. 

 

๊ทธ๋ฆฌ๊ณ  ํ„ฐ๋ฏธ๋„์— ๋ช…์‹œ๋˜์–ด ์žˆ๋Š” ๋ช…๋ น์–ด๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ์‹คํ–‰ํ•ด์ค๋‹ˆ๋‹ค.

$ 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

 

์ž˜ ์„ค์น˜๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ž˜์™€ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰์‹œ์ผœ์ค๋‹ˆ๋‹ค.

$ docker ps

ํŒŒ๋“œ๋“ค์ด ์•„์ฃผ ์ž˜ ์‹คํ–‰๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๋„ ์ž˜ ์ƒ์„ฑ ๋˜์—ˆ๋Š”์ง€ ํ•œ๋ฒˆ ํ™•์ธํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

$ kubectl get nodes

๊ตฌ์ถ•์€ ๋œ๊ฑฐ ๊ฐ™์€๋ฐ STATUS๊ฐ€ NotReady์ž…๋‹ˆ๋‹ค. ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ด์„œ ์™œ ๊ทธ๋Ÿฐ์ง€ ํ™•์ธํ•ด๋ด…๋‹ˆ๋‹ค.

 

$ kubectl describe nodes

๋กœ๊ทธ๋“ค์€ ์‚ดํŽด๋ณด๋ฉด ์œ„์™€ ๊ฐ™์ด NetworkReady=false๋ผ๊ณ  ๋‚˜์˜ต๋‹ˆ๋‹ค. Cluster Network๋ฅผ ๊ตฌ์ถ•ํ•ด์ฃผ์ง€ ์•Š์•„์„œ ๊ทธ๋Ÿฐ๊ฒ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ CN์„ ๊ตฌ์ถ•ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 


Cluster Networking ๊ตฌ์ถ•ํ•˜๊ธฐ(๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๋งŒ)

 

You must deploy a Container Network Interface (CNI) based Pod network add-on so that your Pods can communicate with each other. Cluster DNS (CoreDNS) will not start up before a network is installed.

 

์ด์ œ์•ผ NetworkReady=false ์˜€๋˜ ์ด์œ ๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒŒ๋“œ๋“ค์˜ ์†Œํ†ต์„ ๊ฐ€๋Šฅ์ผ€ ํ•ด์ฃผ๋Š” CoreDNS๊ฐ€ ์‹œ์ž‘ ๋˜์ง€ ์•Š์•„์„œ ์˜€์Šต๋‹ˆ๋‹ค. 

 

CoreDNS ํŒŒ๋“œ 2๊ฐœ์˜ STATUS๊ฐ€ Pending์ธ ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด CNI๋ฅผ ๋ฐฐํฌํ•ด์ฃผ์–ด CoreDNS์˜ STATUS๋ฅผ Running์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๋ฌธ์ œ

๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์˜ STATUS๊ฐ€ NotReady์ž„.

 

์›์ธ

CNI(์ปจํ…Œ์ด๋„ˆ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค) ๊ธฐ๋ฐ˜ ํฌ๋“œ ๋„คํŠธ์›Œํฌ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด์ฃผ์ง€ ์•Š์Œ.

๊ทธ๋กœ ์ธํ•ด CoreDNS ํŒŒ๋“œ์˜ STATUS๊ฐ€ Pending์ž„.

 

ํ•ด๊ฒฐ

CoreDNS ํŒŒ๋“œ์˜ STATUS๋ฅผ Running์œผ๋กœ ๋ฐ”๊ฟ”์ค˜์•ผํ•จ.

๊ทธ๋Ÿฌ๋ ค๋ฉด CNI(์ปจํ…Œ์ด๋„ˆ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค) ๊ธฐ๋ฐ˜ ํฌ๋“œ ๋„คํŠธ์›Œํฌ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด์ค˜์•ผํ•จ.

 


CNI ๊ธฐ๋ฐ˜ ํฌ๋“œ ๋„คํŠธ์›Œํฌ ๊ธฐ๋Šฅ ์ถ”๊ฐ€(๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๋งŒ)

 

 

Cluster Networking

Networking is a central part of Kubernetes, but it can be challenging to understand exactly how it is expected to work. There are 4 distinct networking problems to address: Highly-coupled container-to-container communications: this is solved by Pods and lo

kubernetes.io

 

๋งํฌ ๊ฑธ์–ด๋‘” ๊ณต์‹๋ฌธ์„œ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด CNI๋ฅผ ์ œ๊ณตํ•ด์ฃผ๋Š” ์—…์ฒด๋“ค์ด ์ƒ๋‹นํžˆ ๋งŽ์Šต๋‹ˆ๋‹ค.

 

ํผ๋ธ”๋ฆญ ํด๋ผ์šฐ๋“œ 3๋Œ€์žฅ๋„ ๋‹น์—ฐํžˆ ์žˆ๊ณ ์š”.

์นผ๋ฆฌ์ฝ” ๋˜ํ•œ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ €๋Š” ์ด๋“ค ๋ง๊ณ  weaveworks์—์„œ ์ œ๊ณตํ•ด์ฃผ๋Š” CNI ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์œ ๋Š” ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์˜จํ”„๋ ˆ๋ฏธ์Šค ํ™˜๊ฒฝ์ด๋‹ˆ๊น ํผ๋ธ”๋ฆญ ํด๋ผ์šฐ๋“œ ๊ป€ ๊ตณ์ด ์‚ฌ์šฉํ•  ํ•„์š” ์—†๊ณ , ์นผ๋ฆฌ์ฝ”๋Š” ์ž˜๋ชจ๋ฆ…๋‹ˆ๋‹ค ใ…œใ…œ

 

 

Integrating Kubernetes via the Addon

The following topics are discussed: Installation Before installing Weave Net, you should make sure the following ports are not blocked by your firewall: TCP 6783 and UDP 6783/6784. For more details, see the FAQ. Weave Net can be installed onto your CNI-ena

www.weave.works

 

์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์—์„œ ์‹คํ–‰ํ•ด์ค๋‹ˆ๋‹ค. weaveworks์—์„œ ์ œ๊ณตํ•ด์ฃผ๋Š” yaml์„ ์„ค์น˜ํ•ด์ค๋‹ˆ๋‹ค.

$ kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

 

์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์ž˜ ์„ค์น˜๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด๋ด…๋‹ˆ๋‹ค.

$ kubectl get pods -n kube-system

coredns์˜ STATUS๊ฐ€ Running์œผ๋กœ ๋ฐ”๋€Œ์—ˆ๊ณ , weave-net ํŒŒ๋“œ๋„ ์ถ”๊ฐ€๋œ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 


๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์˜ ์ƒํƒœ ํ™•์ธํ•˜๊ธฐ(๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๋งŒ)

 

 

์ด์ œ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์˜ STATUS๊ฐ€ Ready๊ฐ€ ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

์ด๋ ‡๊ฒŒ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋Œ€์žฅ์ธ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๋ฅผ kubeadm์„ ์ด์šฉํ•˜์—ฌ ์„ค์น˜ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

 


๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์— ์›Œ์ปค ๋…ธ๋“œ ์ถ”๊ฐ€ํ•ด์ฃผ๊ธฐ(์›Œ์ปค ๋…ธ๋“œ๋งŒ)

 

์ด์ œ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๋Š” ์„ค์น˜ํ–ˆ์œผ๋‹ˆ ์›Œ์ปค ๋…ธ๋“œ ๋˜ํ•œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ์— ์ถ”๊ฐ€ํ•ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค. kubeadm init ํ–ˆ์„ ๋•Œ kubeadm join ~ ์ ์–ด๋‘์‹œ๋ผ๊ณ  ํ–ˆ๋Š”๋ฐ ๊ธฐ์–ต ๋‚˜์‹œ๋‚˜์š”?

 

์›Œ์ปค ๋…ธ๋“œ๋กœ ์‚ฌ์šฉํ•  ๊ฐ€์ƒ ๋จธ์‹ ์„ ์ด๋™ํ•œ ํ›„ ๋ช…๋ น์–ด ์ž…๋ ฅ๋งŒ ํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. 

 

kubeadm join 10.150.90.69:6443 --token aksljd.alksjdklasjdklajskld \
        --discovery-token-ca-cert-hash sha256:askljdaklsjdlkajslkdhasulfghalkjla

 

์ด๋•Œ ๋ฐ˜๋“œ์‹œ ์›Œ์ปค ๋…ธ๋“œ์˜ ๊ฐ€์ƒ ๋จธ์‹ ๊ณผ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์˜ ๊ฐ€์ƒ ๋จธ์‹ ๊ณผ ํ†ต์‹ ์ด ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

 

์ด๋ฏธ์ง€์ฒ˜๋Ÿผ ํ„ฐ๋ฏธ๋„์— ๋ฌธ๊ตฌ๊ฐ€ ๋‚˜์˜ค๋ฉด ์ œ๋Œ€๋กœ ์„ค์น˜ ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๋งŒ์•ฝ ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค๋ฉด ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”

 

[K8S]unable to fetch the kubeadm-config ConfigMap: failed to get config map: UnauthorizedTo see the stack trace of this error ex

๋งŒ์•ฝ kubeadm์„ ํ†ตํ•ด master์— node join์„ ์‹œ๋„ํ•  ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์ด ์˜ค๋ฅ˜๊ฐ€ ๋‚œ๋‹ค๋ฉด ubuntu@node:~$ sudo kubeadm join 192.168.241.92:6443 --token 4rlhh1.4dehcs172qy9enyj --discovery-token-ca-cert-hash sh..

kingofbackend.tistory.com

 


์›Œ์ปค ๋…ธ๋“œ๊ฐ€ ์ž˜ ์„ค์น˜๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ(๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์—์„œ๋งŒ)

 

$ kubectl get nodes

์›Œ์ปค ๋…ธ๋“œ(node-1)์˜ STATUS๊ฐ€ Ready ๋˜๊ธฐ๊นŒ์ง€๋Š” 5๋ถ„์ •๋„ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ์›Œ์ปค ๋…ธ๋“œ๋„ ์ž˜ ๊ตฌ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 


์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์ž˜ ๊ตฌ์ถ•๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ(๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์™€ ์›Œ์ปค ๋…ธ๋“œ์—์„œ)

 

๊ฐ„๋‹จํ•œ nginx.yaml ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์„œ ํ…Œ์ŠคํŠธ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2 # tells deployment to run 2 pods matching the template
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80

 

์œ„ ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌ ํ•œ ํ›„ vi ์—๋””ํ„ฐ๋ฅผ ํ†ตํ•ด ์ž‘์„ฑํ•ด์ค๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฐฐํฌํ•ด์ค๋‹ˆ๋‹ค.

$ vi ~/nginx.yaml
$ kubectl apply -f ~/nginx.yaml

๋ชจ๋“  ํŒŒ๋“œ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฌ๋ฉด ์›Œ์ปค ๋…ธ๋“œ์—์„œ ์„œ๋น„์Šค๋กœ ํ†ต์‹ ์„ ๋ณด๋‚ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 

 

์•„์ฃผ ์ž˜๋ฉ๋‹ˆ๋‹ค!!

 

์ด๋ ‡๊ฒŒ ์˜จํ”„๋ ˆ๋ฏธ์Šค ํ™˜๊ฒฝ์—์„œ kubeadm์œผ๋กœ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์ถ•ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

 

ํ•˜์‹œ๋‹ค๊ฐ€ ์•ˆ๋˜๋Š”๊ฒŒ ์žˆ์œผ์‹œ๋ฉด ์–ธ์ œ๋“ ์ง€ ์งˆ๋ฌธํ•ด์ฃผ์„ธ์š” :)

 

 

 

[AWS + K8S] EKS๋กœ k8s ํด๋Ÿฌ์Šคํ„ฐ ์ƒ์„ฑ ํ›„ ALB๋กœ ๋ฐฐํฌํ•˜๊ธฐ

์ด๋ฒˆ ๊ธ€์„ ์ง„ํ–‰ํ•˜๋ ค๋ฉด ๋จผ์ € ์„ ํ–‰๋˜์–ด์•ผ ํ•  ์ž‘์—…์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ aws, k8s์— ๋Œ€ํ•œ ๊ธฐ์ดˆ ์ง€์‹์ด ์—†์œผ๋ฉด ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -k8s 1.19๋ฒ„์ „ -aws cli ์„ค์น˜ ํ›„ aws์— ์•ก์„ธ์Šค ํ•˜๊ธฐ -eksctl ์„ค์น˜ -์•„๋ž˜์™€ ๊ฐ™์€ v

kingofbackend.tistory.com

 

๋ฐ˜์‘ํ˜•
profile on loading

Loading...