DevOps/k8s

2023-12-25 CKA 기출 feat. CKA 합격

Sophie소피 2023. 12. 28. 21:28
  1. 마스터 노드 버전 업그레이드 (O)
    • 1.28.0 -> 1.28.1 (kubeadm 사용)
    • kubelet, kubectl도 같은 버전
    • 업그레이드워커노드는 건들지 마세요.
  2. Etcd Backup & Restore (X)
    • peer.key , peer.crt , cacrt , endpoints 로 Back up (성공)
    • -> 요구하는 파일명을 사용하여 restore. —data-dir /var/lib/etcd-restore (성공)
    • manifests/etcd.yaml 에서 hostpath 부분 Restore할 때 적은 —data-dir  경로로 변경 함
    • restore 완료한 부분부터 문제대로 하지않은 거 같은 찝찝함이 있어서 틀렸을거 같다
  3. Node not ready -> ready (O)
    • k get nodes 죽은 node 확인
    • root로 접속 kubelet 상태  Inactive 였고 diskpressure
    • systemctl restart kubelet && systemctl status kubelet → running 상태로 변경!
    • exit 하고 k get node하니까 notready에서 ready로 바뀐거 확인완료
  4. Node Rescheduling (X)
    • 아래의 과정을 거치고 기존 pod들 reschedule 실패한거 확인….
k get node 
k drain node node-name --ignore-daemonsets --force
k uncordon node node-name 
  1. Pod에 NodeSelcetor 추가 (O)
    • 주어진 pod 이름과 image로 Pod 생성
    • 주어진 nodeSelector (disktype: spining)로 Pod yaml에 구문 추가
  2. 특정 Pod Log 출력하여 파일 추출 (O)
    • 특정 pod Log 찍고 Log Level Error 메세지 Copy
    • 요구한 파일경로로 파일 추출
  3. CPU 높은 pod 출력하고 파일추출 (O)
    • 주어진 Label이 적용된 Pod 에서 CPU 높은 순서대로 정렬 (name=overloadcpu)
    • CPU 높은 Pod이름 출력하여 요구한 파일 추출
  4. Network policy 생성 (O)
    • 특정 Namespace를 사용하여 networkpolicy 생성
    • 특정 Pod와 Namespace (Labeling해야함)
    • Ingress로 Port 정보 tcp/9100 로 설정
  5. Ingress 생성 (X)
    • Service: hi , Path: /hi , Port: 5678 조건으로 ingress 생성(성공)
    • k get ingress pong 하니까 잘 나옴.. describe 했을 때도 에러로그 없었음
    • 그러나 IP /hi로 curl 날렸을 때 Timeout 나옴
  6. RBAC 문제 (O)
    • Service Account 생성 (cicd-token)
    • ClusteRrole 생성 (resource=Deployment, Replicaset, Statefulset , verb=create)
    • Service Account, ClusterRole 으로 ClusterRoleBinding (Namespace: app-test)
  7. Persistent Volume Claim 생성 → Pod Volume Mount (O)
    • PVC 생성 (ReadWriteOnce, Capacity: 10Mi )
    • PVC bound 여부 확인
    • Pod 생성 ( PVC Mount 하고 요구한 mountPath 설정 )
    • Pod 생성 확인
    • PVC capacity 10Mi -> 70Mi로 변경 (Edit 사용하여 Record 남겨야함)
  8. HostPath Persistent Volume 생성 (O)
    • 주어진 Hostpath, StorageCalss, Capacity 2Gi 적용
  9. Deployment Scaling (O)
    • 주어진 Deployment에 Pod 6개 더 만들어라
    • scale —replicas=6 써서 Scaling
  10. 멀티 컨테이너 Pod 생성 (O)
    • 컨테이너 2개 들어간 Pod 생성
    • image/name : redis , memched
  11. 멀티 컨테이너 사이드카 (X)
    • 못풀었음
  12. Deployment Reconfigure → Service만들어서 Expose (X)
    • 기존 Deployment yaml 파일 수정 (성공)
    • → port: 80, name: http 추가 (성공)
    • 새로운 Service 생성하고 기존 deployment에 Expose 못함
  13. Node Ready 상태 개수 출력하여 파일추출 (O)
    • 순수하게 Ready 만 취급 (taint, Unschedule 제외)

 

결과는 합격