아래는 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 |