Kubernetes Workloadの読み込み
8696 ワード
前言でContainer Registryのクリーンアップに関する記事を書きました.これはリンクですが、以下は実際に使用されていないコンテンツの登録を整理します.
GKEを使用する場合、過去に使用したワークロードも現在使用していないワークロードも増加します.
もちろん毎回直接削除すればいいのですが、人のことはどうしてそうなるのでしょうか.
長い時間が経過すると、削除されたワークロードに関連付けられたDockerイメージがContainer Registryに順次積み上げられます.
次に、各リストを取得することで、未使用の画像の削除を区別できます.
(デフォルトでは、kubeは名前空間単位で区切られています.)
ワークロードからコンテナ内の画像リストを読み込み、前に選択したリストより不要な画像を削除します.
Contenter RegistryとArtifact Registryについて説明します.
GKEを使用する場合、過去に使用したワークロードも現在使用していないワークロードも増加します.
もちろん毎回直接削除すればいいのですが、人のことはどうしてそうなるのでしょうか.
長い時間が経過すると、削除されたワークロードに関連付けられたDockerイメージがContainer Registryに順次積み上げられます.
次に、各リストを取得することで、未使用の画像の削除を区別できます.
const namespaces = JSON.parse(execSync("kubectl get namespace -o=json").toString()).items.map((namespace) => {
return namespace.metadata.name;
});
上記のスクリプトを呼び出して、ネームスペースのリストを読み込みます.(デフォルトでは、kubeは名前空間単位で区切られています.)
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]);
});
});
});
ロードされたネームスペースリストを使用して、デプロイメントとcronjobsをロードします.ワークロードからコンテナ内の画像リストを読み込み、前に選択したリストより不要な画像を削除します.
Contenter RegistryとArtifact Registryについて説明します.
Reference
この問題について(Kubernetes Workloadの読み込み), 我々は、より多くの情報をここで見つけました https://velog.io/@calmlake79/Kubernetes-Workload-불러오기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol