K8S

Kubernetes API 사용해서 Deployment 정보 수정하기

푸른바다거북이14 2025. 3. 17. 11:04

 

아래는 Deployment의 도커 이미지를 변경하는 코드이다.

아래와 같이 

cluster 내에서 사용해야 된다면 load_incluster_config()을 사용하면 되고,
load_kube_config(config_file="C:/Users/USER/.kube/config")를 사용하면 된다.

 

물론 .kube/config에 설정해야 아래 코드가 정상 동작한다.
(참고 https://seojhoon.tistory.com/13)

import os
from kubernetes import client, config

config.load_incluster_config()

# API 클라이언트 생성
apps_v1 = client.AppsV1Api()
deployment = apps_v1.read_namespaced_deployment(name=deployment_name, namespace=namespace)

# 도커 이미지 변경
for container in deployment.spec.template.spec.containers:
  container_image = container.image
  pod_image_name, pod_tag = container_image.split(":")
  print(f"pod image: {pod_image_name}, pod tag: {pod_tag}")
  if pod_image_name == image_address:  # 변경할 컨테이너 이름
     container.image = image_address+':'+image_tag
     print(f"new container image: {container.image}")

# 변경된 디플로이먼트 업데이트
apps_v1.patch_namespaced_deployment(name=deployment_name, namespace=namespace, body=deployment)

 

또는 멀티 클러스터이라면, 클러스터 컨텍스트를 선택할 수도 있다.

context = "cluster1-dev-junghoon"  # 또는 "cluster2-dev-junghoon"
config.set_default_context(context)

 

파이썬에서 kubernetes를 조작해야한다면 아래 git 을 참고해보자

https://github.com/kubernetes-client/python

 

GitHub - kubernetes-client/python: Official Python client library for kubernetes

Official Python client library for kubernetes. Contribute to kubernetes-client/python development by creating an account on GitHub.

github.com

 

'K8S' 카테고리의 다른 글

[K8S] 쿠버네티스 컴포넌트  (1) 2025.07.27
[K8S] Minikube로 kubernetes 환경 셋업  (1) 2025.07.27
[k8s] 멀티 컨테이너  (0) 2025.04.13
[K8S] 외부 cluster 연결하기  (0) 2025.03.17
[k8s] 네트워크  (0) 2025.02.15