Kbernetes kubectl을 이용하여 Pods를 업데이트 하기

 

해당 pods에 사용되는 이미지를 다른 이미지로 바꿔야 하는 경우가 있습니다. 이때도 변경된 이미지를 Pull받아야 합니다. 해당 글은 아래 gitHub repository를 이용하여 작성했습니다.


gitHubLink : https://github.com/Alex-Choi0/kubernetes_create_one_pod.git


기존 코드와 다르게 '<h2>Update ver 1</h2>'를 추가하였습니다. 이는 배포된 pod에 없는 테그 이므로 같은 이미지를 사용하는 컨테이너를 다시 배포를 해야 합니다. 


const express = require('express');

const app = express();

app.get('/', (req, res) => {
res.send(`
<h1>Test for minikube</h1>
<h2>Update ver 1</h2>
<p>/ : Open the site</p>
<p>/err : process top (get error)</p>
`);
});

app.get('/err', (req, res) => {
process.exit(1);
});

app.listen(8080);


1. 이미지 Create하고 Push 하기(경로는 도커파일이 존재하는곳)

$ docker build -t [image name]:[tag] .






이제 해당 이미지를 컨테이너에 다시 배포해야 한다. minikube dashboard를 확인하면 컨테이너의 이름을 확인할수 있다. 아래 사진으로는 'first-pods' 이다. 이미지는 'alexchoi1/first-pods:latest'를 사용하지만 위의 사진에서 푸시한 이미지 'alexchoi1/first-pods:ver1'을 사용할 것이다.




$ kubectl set image deployment/[deployment name] [container name]=[image-name:tag]




위의 사진을 확인하면 기존의 컨테이너가 'Terminating'되고 새로운 컨테이너가 'Running'하고 있는 것을 알수 있다. 해당 배포는 반드시 다른 tag로 진행해야 합니다.



만약 제대로 배포됬는지 확인할려면 아래 터미널을 실행하면 된다.

$ kubectl rollout status deployment/[deployment name]




위 사진처럼 'deployment "first-pods" successfully rolled out'이라고 출력이 된다.


댓글

이 블로그의 인기 게시물

Lesson 12_1 프로퍼티 노드(Property Node)

DAQ로 전압 측정하기-2

Lesson 12_2 참조를 이용한 프로퍼티노드(Property Node)