Kubernetes Workload 불러오기
앞글 에서 Container Registry를 정리하는 글을 썼었습니다. 연결되는 내용입니다만, 다음으로는 실제로 사용되지 않는 Container Registry를 정리하는 내용입니다.
GKE를 사용하다보면, 당연히 과거에는 사용했으나, 현재는 사용하지 않는 Workload들이 늘어나게 됩니다.
물론 매번 바로 바로 삭제하면 좋지만 사람일이라는게 그렇게 될리가 있나요...
따라서 한참 시간이 지나면 삭제된 Workload들에 연결되어 있던 Docker Image들이 차곡차곡 Container Registry에 쌓이게 됩니다.
그렇다면 각각 목록을 불러와서 사용되지 않는 이미지를 diff해서 삭제하면 됩니다.
const namespaces = JSON.parse(execSync("kubectl get namespace -o=json").toString()).items.map((namespace) => {
return namespace.metadata.name;
});
위와 같은 스크립트를 호출하면 namespace 목록을 불러올 수 있습니다.
( kube는 기본적으로 namespace단위로 나눠져 있습니다. )
const images = [];
namespaces.map((namespace) => {
JSON.parse(execSync(`kubectl get deployments --namespace=${namespace} -o=json`).toString()).items.map((deployment) => {
deployment.spec.template.spec.containers.map((container) => {
images.push(container.image.split(":")[0]);
});
});
});
namespaces.map((namespace) => {
JSON.parse(execSync(`kubectl get cronjobs --namespace=${namespace} -o=json`).toString()).items.map((cronjob) => {
cronjob.spec.jobTemplate.spec.template.spec.containers.map((container) => {
images.push(container.image.split(":")[0]);
});
});
});
불러온 namespace목록을 활용하여, deployments 와 cronjobs를 불러옵니다.
해당 workload에서 container들에 있는 이미지 목록을 불러온뒤 앞에서 뽑은 목록과 비교해서 필요없는 이미지들은 삭제하면 됩니다.
다음 이야기는 Container Registry와 Artifact Registry에 관해 이야기하려 합니다.
Author And Source
이 문제에 관하여(Kubernetes Workload 불러오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@calmlake79/Kubernetes-Workload-불러오기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)