CKA
CKA - kodekloud Practice Test - Priority Classes & Multiple Schedulers & Admission Controllers & Validating and Mutating Admission Controllers
by 2won2
2025. 7. 1.
Priority Classes
- priority class value 확인
- kubectl describe priorityclass
- priority class 생성
- name : high-priority
- value : 100,000
- policy : PreemptLowerPriority
- global-default=false
- kubectl create priorityclass high-priority --value=100000 --description="high priority" --preemption-policy="PreemptLowerPriority" --global-default=false
- priority class 생성2
- name : low-priority
- value : 1,000
- kubectl create priorityclass low-priority --value=1000 --description="low priority"
- 이미 생성된 pod의 priority class 변경
- kubectl get pod critical-app -o yaml > critical-app.yaml (yaml로 뽑기)
- vi로 수정
- delete후 apply
Multiple Schedulers
- 기본 스케줄러를 실행하는 pod 이름은?
- kubectl get pods --namespace=kube-system
- kube-scheduler-로 시작하는 이름의 pod를 찾아야함
- /root/my-scheduler.yaml를 사용해 추가 스케줄러 배포
- vi /root/my-scheduler.yaml
- image 변경
- registry.k8s.io/kube-scheduler:v1.32.0
- 구글의 Kubernetes 공식 레지스트리
- /root/nginx-pod.yaml를 사용해 pod 배포
- vi /root/nginx-pod.yaml
- schedulerName: my-scheduler 추가
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
schedulerName: my-scheduler
containers:
- image: nginx
name: nginx
Admission Controllers
- 기본적으로 활성화되지 않은 Admission Controller는?
- kubectl exec -it kube-apiserver-controlplane -n kube-system -- kube-apiserver -h | grep enable-admission-plugins
- 생략되지 않은 목록을 봐야함
- admission plugins that should be enabled in addition to default enabled ones
- NamespaceAutoProvision 수동 활성화
- vi /etc/kubernetes/manifests/kube-apiserver.yaml
-
- --enable-admission-plugins= 뒤에 , 로 구분해서 작성
Validating and Mutating Admission Controllers
- webhook-demo 네임스페이스에 보안 웹훅 통신용 TLS 시크릿 webhook-server-tls를 생성
- kubectl -n webhook-demo create secret tls webhook-server-tls \
--cert "/root/keys/webhook-server-tls.crt" \
--key "/root/keys/webhook-server-tls.key"