IT ์‚ฌ๋ฌผํ•จ ๐Ÿป ์ž์„ธํžˆ๋ณด๊ธฐ

k8s

์ฑ•ํ„ฐ2. ์ปจํ…Œ์ด๋„ˆ์˜ ์ดํ•ด

๋ž˜๋ฆฌ๋ž˜๋ฆฌ 2023. 3. 27. 15:24

์ฑ•ํ„ฐ2. ์ปจํ…Œ์ด๋„ˆ์˜ ์ดํ•ด

  • 2.1 ์ปจํ…Œ์ด๋„ˆ ์†Œ๊ฐœ

2.1.1 ์ปจํ…Œ์ด๋„ˆ์™€ ๊ฐ€์ƒ ๋จธ์‹  ๋น„๊ต

(1.2.1 ์ปจํ…Œ์ด๋„ˆ ์ดํ•ด)

๋ฆฌ๋ˆ…์Šค ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ  - ๋™์ผํ•œ ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์„œ๋น„์Šค๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€์ƒ๋จธ์‹ ๊ณผ ๋น„๊ตํ•ด์„œ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋งค์šฐ ์ ๋‹ค.

 

์ปจํ…Œ์ด๋„ˆ์™€ ๊ฐ€์ƒ๋จธ์‹  ๋น„๊ต

  • ์ปจํ…Œ์ด๋„ˆ๋Š” ํ›จ์”ฌ ๋” ๊ฐ€๋ฒผ์›Œ ๋งŽ์€ ์ˆ˜์˜ SW ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ฐ€์ƒ๋จธ์‹ ์€ ์‹œ์Šคํ…œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•ด์•ผํ•ด์„œ ์ถ”๊ฐ€ ์ปดํ“จํŒ… ๋ฆฌ์†Œ์Šค๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
  • ์ปจํ…Œ์ด๋„ˆ๋Š” ํ˜ธ์ŠคํŠธOS์—์„œ ์‹คํ–‰๋˜๋Š” ํ•˜๋‚˜์˜ ๊ฒฉ๋ฆฌ๋œ ํ”„๋กœ์„ธ์Šค์ด๋‹ค.

  • ํ˜ธ์ŠคํŠธ์— ๊ฐ€์ƒ๋จธ์‹ ์„ ์„ธ ๊ฐœ ์‹คํ–‰ํ•˜๋ฉด ์„ธ ๊ฐœ์˜ ์™„์ „ํžˆ ๋ถ„๋ฆฐ๋œ OS๊ฐ€ ์‹คํ–‰๋˜๊ณ  ๋™์ผํ•œ ๋ฒ ์–ด๋ฉ”ํƒˆ ํ•˜๋“œ์›จ์–ด๋ฅผ ๊ณต์œ ํ•˜๊ฒŒ ๋œ๋‹ค.
  • ์ปจํ…Œ์ด๋„ˆ๋Š” ํ˜ธ์ŠคํŠธ OS์—์„œ ์‹คํ–‰๋˜๋Š” ๋™์ผํ•œ ์ปค๋„์—์„œ ์‹œ์Šคํ…œ ์ฝœ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  • ์ปจํ…Œ์ด๋„ˆ๋Š” ๋ชจ๋‘ ๋™์ผํ•œ ์ปค๋„์„ ํ˜ธ์ถœํ•จ์œผ๋กœ ๋ณด์•ˆ ์œ„ํ—˜์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋™์ผํ•œ ์‹œ์Šคํ…œ์—์„œ ๋” ๋งŽ์€ ์ˆ˜์˜ ๊ฒฉ๋ฆฌ๋œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด ์ปจํ…Œ์ด๋„ˆ์˜ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋‚ฎ๊ธฐ ๋•Œ๋ฌธ์— ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
  • ๊ฐ ๊ฐ€์ƒ๋จธ์‹ ์€ ์ž์ฒด ์‹œ์Šคํ…œ ์„œ๋น„์Šค๋ฅผ ์‹คํ–‰ํ•˜์ง€๋งŒ ์ปจํ…Œ์ด๋„ˆ๋Š” ๋ชจ๋‘ ๋™์ผํ•œ OS์—์„œ ์‹คํ–‰๋˜๋ฏ€๋กœ ์ปจํ…Œ์ด๋„ˆ๋Š” ์‹œ์Šคํ…œ ์„œ๋น„์Šค๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค.

์ปจํ…Œ์ด๋„ˆ ๊ฒฉ๋ฆฌ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜

  • ๋ฆฌ๋ˆ…์Šค ๋„ค์ž„์ŠคํŽ˜์ด์Šค(namespace)
    ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ข…๋ฅ˜
    -๋งˆ์šดํŠธ -ํ”„๋กœ์„ธ์Šค ID
    -๋„คํŠธ์›Œํฌ -ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹ 
    -ํ˜ธ์ŠคํŠธ์™€ ๋„๋ฉ”์ธ ์ด๋ฆ„
    -์‚ฌ์šฉ์ž ID

๋ชจ๋“  ์‹œ์Šคํ…œ ๋ฆฌ์†Œ์Šค๋Š” ํ•˜๋‚˜์˜ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์†ํ•œ๋‹ค.

ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ํ•ด๋‹น ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ค‘ ํ•˜๋‚˜์—์„œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

ํ”„๋กœ์„ธ์Šค๋Š” ๋™์ผํ•œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋‚ด์— ์žˆ๋Š” ๋ฆฌ์†Œ์Šค๋งŒ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ์„ธ์Šค๋Š” ์—ฌ๋Ÿฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์†ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ๋ฆฌ๋ˆ…์Šค ์ปจํŠธ๋กค ๊ทธ๋ฃน(cgroups)
    ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ์Šคํ…œ ๋ฆฌ์†Œ์Šค์˜ ์–‘์„ ์ œํ•œํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
    ์ด๋Š” ํ”„๋กœ์„ธ์Šค์˜ ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ์„ ์ œํ•œํ•˜๋Š” ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ๊ธฐ๋Šฅ์ธ cgroups๋กœ ์ด์ค˜์ง„๋‹ค.
    ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์šฉ์œผ๋กœ ์˜ˆ์•ฝ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

2.1.1 Docker ์„ค์น˜ ๋ฐ Hello World ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰

[Docker] ๋งฅ OS์— ๋„์ปค ์„ค์น˜ํ•˜๊ธฐ(Install Docker on MacOS)

ํ•ด๋‹น ๋ธ”๋กœ๊ทธ๋ฅผ ํ†ตํ•ด ๋„์ปค ๋ฐ ๋„์ปค ๋ฐ์Šคํฌํƒ‘ ์„ค์น˜

ํ„ฐ๋ฏธ๋„์„ ํ†ตํ•ด ๋ฒ„์ „ ํ™•์ธ!

 

Hello World ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰

busybox - echo, ls, gzip ๋“ฑ๊ณผ ๊ฐ™์€ ํ‘œ์ค€ UNIX ๋ช…๋ น์ค„ ๋„๊ตฌ๋“ค์„ ํ•ฉ์ณ ๋†“์€ ๋‹จ์ผ ์‹คํ–‰ํŒŒ์ผ

busybox ์ด๋ฏธ์ง€๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ๊ฒƒ๋„ ๋‹ค์šด๋กœ๋“œํ•  ํ•„์š”์—†๋‹ค.

docker run ์ปค๋งจ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์–ด๋–ค ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•˜๊ณ  ์‹คํ–‰ํ• ์ง€ ๋ช…๋ น์–ด๋ฅผ ๊ธฐ์ˆ ํ•˜๋ฉด ๋œ๋‹ค.

 

์ค‘์š”ํ•œ ์ ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ์‹คํ–‰๋˜๊ณ , ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰์ค‘์ธ ๋‹ค๋ฅธ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋กœ๋ถ€ํ„ฐ ์™„์ „ํžˆ ๊ฒฉ๋ฆฌ๋œ๋‹ค๋Š” ์ ์ด๋‹ค.

$ docker run busybox echo “Hello World”

 

๋ฐฑ๊ทธ๋ผ์šด๋“œ์— ์ผ์–ด๋‚œ ๋™์ž‘ ์ดํ•ดํ•˜๊ธฐ

docker run ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ–ˆ์„ ๋•Œ ๋จผ์ € busybox:latest ์ด๋ฏธ์ง€๊ฐ€ ๋กœ์ปฌ์— ์กด์žฌํ•˜๋Š”์ง€ ์ฒดํฌํ•œ๋‹ค.

์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋„์ปค ํ—ˆ๋ธŒ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ํ’€ํ•˜๊ณ  ๊ฒฉ๋ฆฌ๋œ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰ํ•œ๋‹ค.

echo ๋ช…๋ น์–ด๋Š” ํ…์ŠคํŠธ๋ฅผ ํ‘œ์ค€ ์ถœ๋ ฅ์œผ๋กœ ์ถœ๋ ฅํ•œ ํ›„ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘๋‹จํ•˜๊ณ  ์ปจํ…Œ์ด๋„ˆ๋„ ์ค‘์ง€๋œ๋‹ค.

$ docker run <image> // ๋„์ปค ์ด๋ฏธ์ง€ ์‹คํ–‰
$ docker run <image>:<tag> // ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์— ๋ฒ„์ „ ์ง€์ •

 

2.1.2 ๊ฐ„๋‹จํ•œ node.js ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒ์„ฑํ•˜๊ธฐ

# vi app.js

const http = require('http');
const os = require('os');

console.log("Kubia server starting...");

var handler = function(request, response) {
  console.log("Received request from " + request.connection.remoteAddress);
  response.writeHead(200);
  response.end("You've hit " + os.hostname() + "\\n");
};

var www = http.createServer(handler);
www.listen(8080);

2.1.3 ์ด๋ฏธ์ง€๋ฅผ ์œ„ํ•œ Dockerfile ์ƒ์„ฑํ•˜๊ธฐ

# vi Dockerfile

FROM node:7
ADD app.js /app.js
ENTRYPOINT ["node", "app.js"]

Dockerfile

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ด๋ฏธ์ง€๋กœ ํŒจํ‚ค์ง•ํ•˜๊ธฐ ์œ„ํ•œ ํŒŒ์ผ
  • ๋„์ปค๊ฐ€ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ์ง€์‹œ ์‚ฌํ•ญ์ด ๋‹ด๊ฒจ์žˆ๋‹ค.
  • app.js ํŒŒ์ผ๊ณผ ๋™์ผํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ์–ด์•ผํ•œ๋‹ค

FROM ์ค„์€ ์‹œ์ž‘์ ์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ์ •์˜ํ•œ๋‹ค.

๋‘๋ฒˆ์งธ ์ค„์€ ๋กœ์ปฌ ๋””๋ ‰ํ† ๋ฆฌ์˜ app.js๋ฅผ ์ด๋ฏธ์ง€์˜ ๋ฃจํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋™์ผํ•œ ์ด๋ฆ„์œผ๋กœ ์ถ”๊ฐ€ํ•œ๋‹ค.

ENTRYPOINT๋Š” ์ด๋ฏธ์ง€๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์ˆ˜ํ–‰๋˜์•ผ ํ•  ๋ช…๋ น์–ด๋ฅผ ์ •์˜ํ•œ๋‹ค. ์ด ๊ฒฝ์˜ node app.js

 

2.1.4 ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ์ƒ์„ฑ

$ docker build -t kubia .

๋„์ปค๊ฐ€ ๋””๋ ‰ํ„ฐ๋ฆฌ ๋‚ด Dockerfile์„ ์‚ดํŽด๋ณด๊ณ  ํŒŒ์ผ์— ๋ช…์‹œ๋œ ์ง€์‹œ ์‚ฌํ•ญ์— ๊ทผ๊ฑฐํ•ด ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•œ๋‹ค.

๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค๋Š” ๋„์ปค ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

์ด๋ฏธ์ง€ ๋ ˆ์ด์–ด์— ๊ด€ํ•ด ์ดํ•ดํ•˜๊ธฐ

์ด๋ฏธ์ง€๋ผ๋Š” ๊ฒƒ์€ ํฐ ๋ฉ์–ด๋ฆฌ๊ฐ€ ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ ˆ์ด์–ด๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

์„œ๋กœ ๋‹ค๋ฅธ ์ด๋ฏธ์ง€๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ ˆ์ด์–ด๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์ปดํ“จํ„ฐ์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ ˆ์ด์–ด๊ฐ€ ์ด๋ฏธ ์ €์žฅ๋ผ ์žˆ๋‹ค๋ฉด ๋„์ปค๋Š” ์ €์žฅ๋˜์ง€ ์•Š์€ ๋ ˆ์ด์–ด๋งŒ ๋‹ค์šด๋กœ๋“œํ•œ๋‹ค.

 

2.1.5 ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ์‹คํ–‰

$ docker run --name kubia-container -p 8080:8080 -d kubia
// -d ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰
// -p 8080:8080 ๋กœ์ปฌ๋จธ์‹  8080ํฌํŠธ๊ฐ€ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ 8080ํฌํŠธ์™€ ๋งคํ•‘
$ docker ps
// ์‹คํ–‰ ์ค‘์ธ ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์กฐํšŒํ•ด์„œ ๋ฆฌ์ŠคํŠธ๋ฅผ ํ™•์ธ

$ docker inspect kubia-container 
// ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์ด๋„ˆ์˜ ์ƒ์„ธ ์ •๋ณด๋ฅผ jsonํ˜•์‹์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค.

$ docker exec -it kubia-container bash
// ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ์˜ ๊ธฐ๋ณธ ์ด๋ฏธ์ง€์— ์…ธ์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์…ธ์„ ์‹คํ–‰ ํ•  ์ˆ˜ ์žˆ๋‹ค.
// -it ์˜ต์…˜ -i : ํ‘œ์ค€ ์ž…๋ ฅ์„ ์˜คํ”ˆ์ƒํƒœ๋กœ ์œ ์ง„ํ•œ๋‹ค. ์…ธ์— ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•˜๋‹ค.
					-t : ์˜์‚ฌ ํ„ฐ๋ฏธ๋„์„ ํ• ๋‹นํ•œ๋‹ค.

 

ํ˜ธ์ŠคํŠธ ์šด์˜์ฒด์ œ์™€ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ์กฐํšŒํ•œ ํ”„๋กœ์„ธ์Šค์˜ID๊ฐ€ ๋‹ค๋ฅด๋‹ค.

์ปจํ…Œ์ด๋„ˆ๋Š” ์ž์ฒด ๋ฆฌ๋ˆ…์Šค PID ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ๊ณ ์œ ์˜ ์Šคํ€€์Šค ๋ฒˆํ˜ธ๋ฅผ ๊ฐ€์ง€๊ณ  ์™„์ „ํžˆ ๋ถ„๋ฆฌ๋œ ํ”„๋กœ์„ธ์Šค ํŠธ๋ฆฌ๋ฅผ ๊ฐ–๊ณ ์žˆ๋‹ค.

$ docker stop kubia-container
// ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์ค‘์ง€

$ docker rm kubia-container
// ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œ

 

2.1.8 ์ด๋ฏธ์ง€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ์ด๋ฏธ์ง€ ํ‘ธ์‹œ

๋„์ปค ํ—ˆ๋ธŒ๋Š” ์ด๋ฏธ์ง€์˜ ๋ฆฌํฌ๋ฆฌํ„ฐ๋ฆฌ ์ด๋ฆ„์ด ๋„์ปค ํ—ˆ๋ธŒ ID๋กœ ์‹œ์ž‘ํ•ด์•ผ๋งŒ ์ด๋ฏธ์ง€๋ฅผ ํ‘ธ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค.

$ docker tag kubia ๋„์ปคํ—ˆ๋ธŒID/kubia
//ํƒœ๊ทธ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ถ”๊ฐ€์ ์ธ ํƒœ๊ทธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

$ docker push ๋„์ปคํ—ˆ๋ธŒID/kubia

  • 2.2 ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ ์„ค์น˜

2.2.1 Minikube๋ฅผ ํ™œ์šฉํ•œ ๋‹จ์ผ ๋…ธ๋“œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ ์‹คํ–‰ํ•˜๊ธฐ

๋กœ์ปฌ์—์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ชฉ์ ์œผ๋กœ ๋‹จ์ผ ๋…ธ๋“œ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋„๊ตฌ์ด๋‹ค.

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ๋‹ค๋ฃจ๋ ค๋ฉด kubectl CLI ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ•„์š”ํ•˜๋‹ค

 

2.2.2 ๊ตฌ๊ธ€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์—”์ง„์„ ํ™œ์šฉํ•œ ๊ด€๋ฆฌํ˜• ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ ์‚ฌ์šฉํ•˜๊ธฐ

์™„์ „ํ•œ ๋‹ค์ค‘ ๋…ธ๋“œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์‚ดํŽด๋ณด๋ ค๋ฉด GKE ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ๊ฐ ๋…ธ๋“œ๋Š” ๋„์ปค, kubelet, kube-proxy๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
  • kubectl ํด๋ผ์ด์–ธํŠธ ๋ช…๋ น์–ด๋Š” ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์—์„œ ์‹คํ–‰์ค‘์ธ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค API ์„œ๋ฒ„๋กœ REST ์š”์ฒญ์„ ๋ณด๋‚ด ํด๋Ÿฌ์Šคํ„ฐ์™€ ์ƒํ˜ธ์ž‘์šฉํ•œ๋‹ค.
$ gcloud container clusters create kubia --num-nodes 3
// ์›Œ์ปค๋…ธ๋“œ๊ฐ€ 3๊ฐœ์ธ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ƒ์„ฑ

$ kubectl get nodes
// ๋…ธ๋“œ ํ™•์ธ

$ kubectl describe [node] [๋…ธ๋“œID]
// describe ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด cpu,๋ฉ”๋ชจ๋ฆฌ,์‹œ์Šคํ…œ ์ •๋ณด,๋…ธ๋“œ์— ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ ๋“ฑ์„ ํฌํ•จํ•œ ์ƒํƒœ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.

  • 2.3 ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์— ์ฒซ ๋ฒˆ์งธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ํ•˜๊ธฐ

๋ณดํ†ต ๋ฐฐํฌํ•˜๊ณ ์ž ํ•˜๋Š” ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๊ธฐ์ˆ ํ•œ JSON์ด๋‚˜ YAML ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ์ค€๋น„ํ•œ๋‹ค.

 

2.3.1 Node.js ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ๋™ํ•˜๊ธฐ

kubectl run ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑํ•œ๋‹ค.

$ kubectl run kubia --image=[๋„์ปคํ—ˆ๋ธŒID]/kubia --port=8080 --generator=run/v1replicationcontroller "kubia" created
// --image=[๋„์ปคํ—ˆ๋ธŒID]/kubia ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ๋ช…์‹œ
// -port=8080 ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด 8080ํฌํŠธ๋ฅผ ์ˆ˜์‹  ๋Œ€๊ธฐ
// --generator ๋กœ ๋ ˆํ”Œ๋ฆฌ์ผ€์ด์…˜์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.

ํŒŒ๋“œ ์†Œ๊ฐœ

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ๊ฐœ๋ณ„ ์ปจํ…Œ์ด๋„ˆ๋“ค์„ ์ง์ ‘ ๋‹ค๋ฃจ์ง€ ์•Š๋Š”๋‹ค.

๋Œ€์‹  ํ•จ๊ป˜ ๋ฐฐ์น˜๋œ ๋‹ค์ˆ˜์˜ ์ปจํ…Œ์ด๋„ˆ๋ผ๋Š” ๊ฐœ๋ช…๋ฅด ์‚ฌ์šฉํ•œ๋‹ค.

์ด ์ปจํ…Œ์ด๋„ˆ์˜ ๊ทธ๋ฃน์„ ํŒŒ๋“œ(pod)๋ผ๊ณ  ํ•œ๋‹ค.

  • ํŒŒ๋“œ๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฐ€์ ‘ํ•˜๊ฒŒ ์—ฐ๊ด€๋œ ์ปจํ…Œ์ด๋„ˆ์˜ ๊ทธ๋ฃน์œผ๋กœ ๊ฐ™์€ ์›Œ์ปค ๋…ธ๋“œ์—์„œ ๊ฐ™์€ ๋ฆฌ๋ˆ…์Šค ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋กœ ํ•จ๊ป˜ ์‹คํ–‰๋œ๋‹ค.
  • ๊ฐ ํŒŒ๋“œ๋Š” ์ž์ฒดIP, ํ˜ธ์ŠคํŠธ์ด๋ฆ„, ํ”„๋กœ์„ธ์Šค ๋“ฑ์ด ์žˆ๋Š” ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋ถ„๋ฆฌ๋œ ๋จธ์‹ 
  • ํŒŒ๋“œ์—์„œ ์‹คํ–‰ ์ค‘์ธ ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ๋Š” ๋™์ผํ•œ ๋…ผ๋ฆฌ์ ์ธ ๋จธ์‹ ์—์„œ ์‹คํ–‰์ค‘์ธ ๊ฒƒ ์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค.
    ๋ฐ˜๋ฉด ๋‹ค๋ฅธ ํŒŒ๋“œ์— ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ฐ™์€ ์›Œ์ปค ๋…ธ๋“œ์—์„œ ์‹คํ–‰ ์ค‘์ด๋ผ๋„ ๋‹ค๋ฅธ ๋จธ์‹ ์—์„œ ์‹คํ–‰ ์ค‘์ธ ๊ฒƒ ์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค.

๋ฐฑ๊ทธ๋ผ์šด๋“œ์— ์ผ์–ด๋‚œ ๋™์ž‘ ์ดํ•ดํ•˜๊ธฐ

  • ๋กœ์ปฌ์— ๋นŒ๋“œํ•œ ์ด๋ฏธ์ง€๋Š” ๋กœ์ปฌ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋„์ปค ํ—ˆ๋ธŒ์— ํ‘ธ์‰ฌํ•œ๋‹ค.
  • Kubectl ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ API ์„œ๋ฒ„๋กœ REST HTTP ์š”์ฒญ์„ ๋ณด๋‚ด์„œ ํด๋Ÿฌ์Šคํ„ฐ์— ์ƒˆ๋กœ์šด ๋ž˜ํ”Œ๋ฆฌ์ผ€์ด์…˜์ปจํŠธ๋กค๋Ÿฌ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  • ๋ž˜ํ”Œ๋ฆฌ์ผ€์ด์…˜์ปจํŠธ๋กค๋Ÿฌ๋Š” ์ƒˆ ํŒŒ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์Šค์ผ€์ค„๋Ÿฌ์— ์˜ํ•ด ์›Œ์ปค ๋…ธ๋“œ ์ค‘ ํ•˜๋‚˜์— ์Šค์ผ€์ค„๋ง ๋œ๋‹ค.
  • ํ•ด๋‹น ์›Œ์ปค ๋…ธ๋“œ์˜ kubelet์€ ๋กœ์ปฌ์— ์ด๋ฏธ์ง€๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ๋„์ปค์—๊ฒŒ ์ด๋ฏธ์ง€๋ฅผ ํ’€ ํ•˜๋„๋ก ์ง€์‹œํ•œ๋‹ค. ์ดํ›„ ๋„์ปค๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑ ์‹คํ–‰ํ•œ๋‹ค.

2.3.2 ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ ‘๊ทผํ•˜๊ธฐ

ํŒŒ๋“œ์— ์–ด๋–ป๊ฒŒ ์ ‘๊ทผํ• ๊นŒ? → ๊ฐ ํŒŒ๋“œ๋Š” ์ž์ฒด IP๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด๋ถ€์— ์žˆ์œผ๋ฉฐ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. → ์„œ๋น„์Šค ์˜ค๋ธŒ์ ํŠธ๋ฅผ ํ†ตํ•ด ๋…ธ์ถœํ•ด์•ผ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

์„œ๋น„์Šค ์˜ค๋ธŒ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ

$ kubectl expose rc kubia --type=LoadBalancer --name kuia-http service "kubia-http" exposed
// replicationcontroller ๋Œ€์‹  rc๋ผ๋Š” ์•ฝ์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

$ kubectl get services
	// ์„œ๋น„์Šค ์˜ค๋ธŒ์ ํŠธ ์กฐํšŒ

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํŒŒ๋“œ ์ด๋ฆ„์„ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. → ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์›Œ์ปค ๋…ธ๋“œ ์šด์˜์ฒด์ œ์—์„œ ์‹คํ–‰ ์ค‘์ด๋ผ ํ• ์ง€๋ผ๋„ ์ „์šฉ์œผ๋กœ ๋ถ„๋ฆฌ๋œ ๋จธ์‹ ์—์„œ ์‹คํ–‰ ์ค‘์ธ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚œ๋‹ค.

 

2.3.3 ์‹œ์Šคํ…œ์˜ ๋…ผ๋ฆฌ์ ์ธ ๋ถ€๋ถ„

์†”์งํžˆ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๊ฐ€ ๋‹จ์ผ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์ธ์ง€ ์—ฌ๋Ÿฌ ๋Œ€์˜ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์— ๋ถ„์‚ฐ๋œ ๊ฒƒ์ธ์ง€ ์•Œ ์ˆ˜ ์—†๋‹ค.
→ ๋‹จ์ผ ์—”๋“œํฌ์ธํŠธ๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ API ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์ƒํ˜ธ์ž‘์šฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

  • kubectl run ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋ ˆํ”Œ๋ฆฌ์ผ€์ด์…˜์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  • ๋ ˆํ”Œ๋ฆฌ์ผ€์ด์…˜์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์‹ค์ œ ํŒŒ๋“œ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  • ํด๋Ÿฌ์Šคํ„ฐ ์™ธ๋ถ€์—์„œ ํŒŒ๋“œ์— ์ ‘๊ทผ์ผ€ ํ•˜๊ธฐ ์œ„ํ•ด ๋ ˆํ”Œ๋ฆฌ์ผ€์ด์…˜์ปจํŠธ๋กค๋Ÿฌ์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜๋Š” ๋ชจ๋“  ํŒŒ๋“œ๋ฅผ ๋‹จ์ผ ์„œ๋น„์Šค๋กœ ๋…ธ์ถœํ•˜๋„๋ก ๋ช…๋ นํ•œ๋‹ค.

ํŒŒ๋“œ์™€ ์ปจํ…Œ์ด๋„ˆ์˜ ์ดํ•ด

๋ณดํ†ต ํŒŒ๋“œ๋Š” ์›ํ•˜๋Š” ๋งŒํผ์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํฌํ•จ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

ํŒŒ๋“œ๋Š” ์ž์ฒด์˜ ๊ณ ์œ ํ•œ ์‚ฌ์„ค IP ์ฃผ์†Œ์™€ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ๊ฐ–๋Š”๋‹ค.

 

๋ ˆํ”Œ๋ฆฌ์ผ€์ด์…˜์ปจํŠธ๋กค๋Ÿฌ์˜ ์—ญํ•  ์ดํ•ด

ํ•ญ์ƒ ์ •ํ™•ํžˆ ํ•˜๋‚˜์˜ ํŒŒ๋“œ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ์ง€์ •ํ•œ๋‹ค.

ํŒŒ๋“œ๋ฅผ ๋ณต์ œํ•˜๊ณ  ํ•ญ์ƒ ์‹คํ–‰ ์ƒํƒœ๋กœ ๋งŒ๋“ ๋‹ค.(๋ณต์ œ๋ณธ์„ ๋งŒ๋“ ๋‹ค)

 

์„œ๋น„์Šค๊ฐ€ ํ•„์š”ํ•œ ์ด์œ 

kubia-http ํŒŒ๋“œ๊ฐ€ ์–ด๋– ํ•œ ์ด์œ ์—์„œ ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜ ์ œ๊ฑฐ๋  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ๋ ˆํ”Œ๋ฆฌ์ผ€์ด์…˜์ปจํŠธ๋กค๋Ÿฌ์— ์˜ํ•ด ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ํŒŒ๋“œ๋กœ ๋Œ€์ฒด๋œ๋‹ค.

์ƒˆ๋กœ์šด ํŒŒ๋“œ๋Š” ๋‹ค๋ฅธ IP์ฃผ์†Œ๋ฅผ ํ• ๋‹น๋ฐ›๋Š”๋ฐ ์ด๊ฒƒ์ด ์ด์œ ์ด๋‹ค.

ํ•ญ์ƒ ๋ณ€๊ฒฝ๋˜๋Š” ํŒŒ๋“œ์˜ IP์ฃผ์†Œ ๋ฌธ์ œ์™€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŒŒ๋“œ๋ฅผ ๋‹จ์ผ IP์™€ ํฌํŠธ์˜ ์Œ์œผ๋กœ ๋…ธ์ถœ์‹œํ‚ค๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค.

 

2.3.4 ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ˆ˜ํ‰ ํ™•์žฅ

$ kubectl get replicationcontrollers
//kubectl get์œผ๋กœ ๋…ธ๋“œ, ํŒŒ๋“œ, ์„œ๋น„์Šค, ๋ ˆํ”Œ๋ฆฌ์ผ€์ด์…˜์ปจํŠธ๋กค๋Ÿฌ ์˜ค๋ธŒ์ ํŠธ๋ฅผ
์กฐํšŒํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ–ˆ๋‹ค.

$ kubectl scale rc kubia --replicas=3
//๋ ˆํ”Œ๋ฆฌ์นด ์ˆ˜ 3๊ฐœ ์œ ์ง€

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์›์น™ ์ค‘ ํ•˜๋‚˜ →
์–ด๋–ค ์•ก์…˜์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š”์ง€ ์ •ํ™•ํ•˜๊ฒŒ ์•Œ๋ ค์ฃผ๋Š” ๋Œ€์‹ ์— ์‹œ์Šคํ…œ์˜ ์˜๋„ํ•˜๋Š” ์ƒํƒœ๋ฅผ ์„ ์–ธ์ ์œผ๋กœ ๋ณ€๊ฒฝ,
์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๊ฐ€ ์‹ค์ œ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ๊ฒ€์‚ฌํ•ด ์˜๋„ํ•œ ์ƒํƒœ๋กœ ์กฐ์ •ํ•œ๋‹ค.

 

์„œ๋น„์Šค ํ˜ธ์ถœ ์‹œ ๋ชจ๋“  ํŒŒ๋“œ๊ฐ€ ์š”์ฒญ์„ ๋ฐ›๋Š”์ง€ ํ™•์ธ

๋ฌด์ž‘์œ„๋กœ ๋‹ค๋ฅธ ํŒŒ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์žˆ๋‹ค.

์„œ๋น„์Šค๋Š” ๋‹ค์ˆ˜ ํŒŒ๋“œ ์•ž์—์„œ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ ์—ญํ• ์„ ํ•œ๋‹ค.

์„œ๋น„์Šค๋ฅผ ์ง€์›ํ•˜๋Š” ํŒŒ๋“œ๊ฐ€ ํ•˜๋‚˜๋“ ์ง€ ๊ทธ๋ฃน์ด๋“ ์ง€ ๊ด€๊ณ„์—†์ด ํ•ด๋‹น ํŒŒ๋“œ๊ฐ€ ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด์—์„œ ์ด๋™ํ•˜๋ฉด์„œ ์ƒ์„ฑ๋˜๊ณ  ์‚ญ์ œ๋˜๋ฉฐ IP๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€๋งŒ,
์„œ๋น„์Šค๋Š” ํ•ญ์ƒ ๋™์ผํ•œ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง„๋‹ค.

 

์‹œ์Šคํ…œ์˜ ์ƒˆ๋กœ์šด ์ƒํƒœ ์‹œ๊ฐํ™”

  • ํ•˜๋‚˜์˜ ์„œ๋น„์Šค์™€ ํ•˜๋‚˜์˜ ๋ ˆํ”Œ๋ฆฌ์ผ€์ด์…˜์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์žˆ๋‹ค.
  • ๋ชจ๋“  ํŒŒ๋“œ ์ธ์Šคํ„ด์Šค ์„ธ๊ฐœ๊ฐ€ ๋ชจ๋‘ ๋ ˆํ”Œ๋ฆฌ์ผ€์ด์…˜์ปจํŠธ๋กค๋Ÿฌ์— ์˜ํ•ด ๊ด€๋ฆฌ๋œ๋‹ค.
  • ์„œ๋น„์Šค๋Š” ๋ชจ๋“  ์š”์ฒญ์„ ํ•˜๋‚˜์˜ ํŒŒ๋“œ๊ฐ€ ์•„๋‹Œ ์„ธ๊ฐœ์— ๋ชจ๋‘ ์ „์†กํ•œ๋‹ค.

2.3.5 ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰ ์ค‘์ธ ๋…ธ๋“œ ๊ฒ€์‚ฌํ•˜๊ธฐ

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ ํŒŒ๋“œ๊ฐ€ ์ ์ ˆํžˆ ๋…ธ๋“œ์— ์Šค์ผ€์ค„๋ง๋๋‹ค๋ฉด, ์–ด๋–ค ๋…ธ๋“œ์— ํŒŒ๋“œ๊ฐ€ ์‹คํ–‰ ์ค‘์ธ์ง€๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š๋‹ค.

๊ฐ ํŒŒ๋“œ๋Š” ์ž์ฒด IP๋ฅผ ๊ฐ€์ง€๊ณ  ๋‹ค๋ฅธ ํŒŒ๋“œ๊ฐ€ ๊ฐ™์€ ๋…ธ๋“œ์— ์žˆ๋Š”์ง€ ๋‹ค๋ฅธ ๋…ธ๋“œ์— ์žˆ๋Š”์ง€ ์ƒ๊ด€์—†์ด ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค.

$ kubectl get pods -o wide
// -o wide ์˜ต์…˜์„ ์‚ฌ์šฉํ•ด ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ํ™•์ธ

$ kubectl describe pod kubia-hczji
// ํŒŒ๋“œ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ๋‹ค

2.3.6 ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋Œ€์‹œ๋ณด๋“œ ์†Œ๊ฐœ

$ kubectl cluster-info | grep dashboard
// ํ•ด๋‹น ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋Œ€์‹œ๋ณด๋“œ url์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.
// GKE์—์„œ ์‚ฌ์šฉ

$ gcloud container clusters describe kubia | grep -E "(username|password):"
// ๋Œ€์‹œ๋ณด๋“œ ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ํŒจ์Šค์›Œ๋“œ ํ™•์ธ

2.4 ์š”์•ฝ

  • ๊ณต๊ฐœ๋œ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ํ’€ํ•˜๊ณ  ์‹คํ–‰ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋กœ ํŒจํ‚ค์ง•ํ•ด ์›๊ฒฉ ์ด๋ฏธ์ง€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ํ‘ธ์‰ฌํ•˜๊ณ  ๋ˆ„๊ตฌ๋‚˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • GKE์— ๋‹ค์ค‘ ๋…ธ๋“œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํŒŒ๋“œ, ๋ ˆํ”Œ๋ฆฌ์ผ€์ด์…˜์ปจํŠธ๋กค๋Ÿฌ, ์„œ๋น„์Šค ์˜ ๊ธฐ๋ณธ๊ฐœ๋… ๋ฐ ์—ฐ๊ด€๊ด€๊ณ„
  • ๋ ˆํ”Œ๋ฆฌ์ผ€์ด์…˜์ปจํŠธ๋กค๋Ÿฌ์˜ ๋ ˆํ”Œ๋ฆฌ์นด ์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ˆ˜ํ‰์œผ๋กœ ํ™•์žฅ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด์Šˆ ๋ถ๋งˆํฌ ๐Ÿ”ฅ

Docker - MAC M1 Error image's platform (linux/arm64/v8) does not match the detected host platform ํ•ด๊ฒฐ

 

*์ถœ์ฒ˜ - ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์ธ ์•ก์…˜ / ์ €์ž: ๋งˆ๋ฅด์ฝ”.๋ฃฉ์ƒค / ์ถœํŒ: ์—์–ด์ฝ˜์ถœํŒ / 2020.03.31