기능은 옵션을 통해 docker 뿐만아니라 crictl 명령어를 이용하여 image pruning 을 진행할 수 있으며,
Control Plane 도 정리할지 안할지 옵션을 통해 선택할 수 있다.
사용방법은 아래와 같다.
1. 아래는 기본적인 yaml 파일이며 command 배열과 mountPath, API_TOKEN, API_URL, KEY_NAME, defaultMode는 필수 옵션이다.
apiVersion: batch/v1
kind: CronJob
metadata:
name: image-prune
spec:
schedule: "0 0 * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: image-prune
image: pangyeons/image-prune:latest
imagePullPolicy: IfNotPresent
command: # 아래 command 배열 수정 및 삭제 금지
- /bin/sh
- -c
- chmod +x image_prune.sh; /image_prune.sh
volumeMounts:
- mountPath: /etc/sshkey # 수정 및 삭제 금지
name: secret-sshkey
env:
- name: API_TOKEN # 수정 및 삭제 금지
valueFrom:
secretKeyRef:
key:
name:
- name: API_URL # 수정 및 삭제 금지
value: ""
- name: KEY_NAME # 수정 및 삭제 금지
value: ""
- name: CRI_TYPE
value: ""
- name: CONTROL_PLANE
value: ""
- name: OS_USER
value: ""
- name: PORT
value: "6443"
- name: LOG_FILE
value: ""
restartPolicy: OnFailure
volumes:
- name: secret-sshkey
secret:
defaultMode: 0600 # 수정 및 삭제 금지
secretName:
2. ssh key 생성 및 등록
ssh-keygen 을 통해 ssh key 생성
ssh-keygen -t rsa # ex) id_rsa, id_rsa.pub 생성
생성 후 나온 public key 모든 node에 등록
# id_rsa.pub 등록
vi ~/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDNbPyWARlsD1OmjgHcQAewXvmTbAJYAYMlRgjgUKu69uVyKB8ZS0n3KuLJy9JoTF4y/VOL5DTCU2TFb1A1eIhM4Ox5sPoNTWIG7h/crH
sed -i 's/ver: 1.0.0/ver: 1.0.1' /home/user/test.conf
2. sed 특정 글 위에추가, 특정 글 아래 추가
특정 글 위에 추가
sed -i -r -e '/ver: 1.0.1/i\Description: version' /home/user/test.conf
특정글 아래 추가
sed -i -r -e '/ver: 1.0.1/a\End Of File' /home/user/test.conf
3. 특정 글 아래 수정
sed -i '/Description: version/{ n; s/ver: 1.0.1/version: 1.0.1/I}' /home/user/test.conf
4. 띄어쓰기(space) 입력
기본적으로 한줄이면 그냥 스페이스바 입력으로 되지만, 그게 아니라면 역슬래쉬(\)를 해주어야 함.
# 한 줄로 작성할 경우
sed -i -r -e '/version: 1.0.1/a\ Date: 2024' /home/user/test.conf
# 여러 줄로 작성할 경우
sed -i -r -e '/Date: 2024/a\
\ \ Month: 4(April)' /home/user/test.conf