IT/CKA 53

CKA 실습 - TroubleShooting

Controlplane 트러블슈팅 먼저 리소스를 조회해본다. 어느 부분이 문제인지 확인이 필요하다. deploy 의 app 리소스가 Ready 상태이지 못한 것을 확인한다. 파드가 정상적인 상태가 아님을 확인하였다. Worker node 트러블슈팅 node01 이 준비되지 않은 상태임을 확인 node01로 접속하여 확인한다. kubelet 이 dead 상태임을 확인, 재시작한 뒤 상태를 다시 확인해본다. 이제 정상적으로 Ready 상태임을 확인 다시 한번 node01이 NotReady 상태이다. 트러블 슈팅을 진행한다. 노드에 접속해보니 kubelet이 active 상태가 아니다. journalctl 명령어로 로그를 확인해본다. 인증 쪽에 문제가 있다고 추정, kubelet의 config 를 확인한다. ..

IT/CKA 2023.09.21

CKA 실습 - Cluster Installation

마스터 노드와 워커 노드에 kubeadm과 kubelet을 설치한다. 설치 방법은 공식 가이드 문서를 따른다. Container Runtimes | Kubernetes Container Runtimes Note: Dockershim has been removed from the Kubernetes project as of release 1.24. Read the Dockershim Removal FAQ for further details. You need to install a container runtime into each node in the cluster so that Pods can run there. This page outlines what kubernetes.io 각 노드 모두 설정을 마치..

IT/CKA 2023.09.19

CKA 실습 - Networking

Explore Environment 노드의 세부적인 사항의 조회를 원한다면 -o wide 옵션을 사용한다. k get nodes -o wide 내부 / 외부 IP 를 조회할 수 있다. 노드의 MAC 주소를 확인하는 방법은 노드에 접속하여 확인할 수 있다. 단, 마스터 노드의 경우 호스트와 공유하므로 호스트의 MAC 주소를 확인하면 된다. 마스터 노드가 사용하는 Default Gateway는, 호스트의 설정을 따라간다. 따라서 ip route로 조회한다. 노드 내 프로세스가 사용하는 포트 등의 정보를 조회할때는 netstat 을 사용한다. netstat에는 옵션이 다양하기 때문에, --help 를 활용하는 것이 좋다. kube-scheduler 가 사용하는 포트를 조회한다. 이 때, 옵션을 활용하는 것이 ..

IT/CKA 2023.09.11

CKA 실습 - Storage

Persistent Volume Claims 파드의 로그 저장 경로를 설정해본다. pod를 kubectl 로 edit 하여 로그를 저장할 경로를 추가한다. 조건은 다음과 같다. 조건에 따라 Persistent Volume 을 생성한다. 쿠버네티스의 공식 문서를 참고한다. Persistent Volumes | Kubernetes Persistent Volumes This document describes persistent volumes in Kubernetes. Familiarity with volumes is suggested. Introduction Managing storage is a distinct problem from managing compute instances. The Persisten..

IT/CKA 2023.09.07

CKA 실습 - Security

ServiceAccount service account 생성하기 deployment 수정하여 serviceaccount 반영하기 dashboard-sa 서비스 계정을 deployment에 추가하여 해당 ServiceAccount가 deployment에 적용되도록 한다. 먼저 수정을 위해 yaml 파일을 생성한다. vi 편집기를 열어 내부를 수정한다. 이 때 주의할 점은 deployment 가 생성할 파드에 지정을 하는 것이기 때문에 파드 쪽에 항목을 추가해야 한다. 항목 추가 후 apply 로 적용한다. Security Context SecurityContext 는 파드의 보안 설정을 담당하는 부분이다. 파드의 설정에 ScurityContext 설정을 추가해본다. 조건은 다음과같다. ubuntu-slee..

IT/CKA 2023.09.06

CKA 실습 - Certification / KubeConfig

View Certification cat /etc/kubernetes/manifests/kube-apiserver.yaml 위 명령어를 통해 kube-apiserver 가 사용하는 certificate file 을 확인할 수 있다. 인증서의 정보에 대해서는 crt 파일을 직접 열람해보면 확인 가능하다. apiserver의 crt 파일에서 인증서 발급자는 kube-apiserver 이고, 인증서 CA는 kubernetes 임을 확인 가능하다. 이와 동일하게, etcd 서버의 인증서 파일은 해당 경로에서 확인 가능하다. (openssl x509 -in /etc/kubernetes/pki/etcd/server.crt -text) kube-apiserver 트러블 슈팅하기 kubectl 명령어가 먹히지 않는 상..

IT/CKA 2023.08.20

CKA 실습 - Cluster Maintenance

OS Upgrade k get pods -o wide wide 명령어를 사용하면 좀더 자세하게 정보를 조회 가능하다. drain 명령어를 그냥 실행하면 daemonset 으로 인해 삭제될 수 없음을 얼럿한다. 여기선 ignore-daemonsets 명령어를 사용하면 삭제 가능하다. drain 명령어를 사용하면 노드에 위치했던 파드들이 전부 다른 노드들로 이동한다. drain 되어 스케줄링이 없는 노드를 다시 활성화시킨다. uncordon 명령어를 사용하면 다시 Ready 상태로 돌아온다. pod의 node는 유지하되, 더 이상 스케줄링이 되지 않도록 disable 하고 싶다면, cordon 명령어를 사용하면 된다. SchedulingDisabled 되었지만 이미 스케줄링 된 파드의 설정은 남아있음을 확인..

IT/CKA 2023.08.15

CKA 실습 - Logging / Update / Application Lifecycle Management

Monitor Cluster Component 모니터링 툴을 다운받고 k create -f . 으로 구성요소들을 모두 설치하여 top 명령어를 통해 각 요소들의 메트릭 수치를 확인할 수 있다. 간단! 로그를 활용하는 명령어는 위와 같다. 파드 내 로그를 확인할 수 있다. Rolling Update deploy에서 Rolling update 를 진행할 때, 몇 개의 파드가 업데이트를 진행하는지는 describe 를 통해 알 수 있다. RolingUpdateStrategy 부분에서, 25% 라고 되어있음을 알 수 있다. 예를 들어 파드가 4개라면 25%에 해당하는 1개의 파드만 업데이트를 진행하게 된다. edit 명령어를 통해 배포 전략을 변경한다면, strategy / type 부분을 수정한다. Comma..

IT/CKA 2023.08.07

CKA 실습 - Scheduling

Labels and Selectors k get pods --selector env=dev | wc -l // label이 env=dev 인 파드의 개수 조회 k get pods --selector env=dev --no-headers // 헤더 제외하고 조회 단, 위의 옵션으로 조회하면 아래와 같이 결과가 출력된다. 위의 헤더 부분까지 포함하여 총 8 이라고 표시되는 것이므로, 실제로 파드의 개수는 7개다. 헤더 부분을 제외하고 조회하고 싶다면 --no-headers 를 추가하면 된다. pods, replicasets 등 다른 모든 오브젝트에 대해 조회하고 싶다면, all 로 조회하면 된다. Taints and Tolerations Create a taint on node01 with key of sp..

IT/CKA 2023.07.31

CKA 실습 - Core concepts

강의 실습 과정인 Practice 에서 기억해둘만한 것들이나 좀더 공부가 필요한 사항들에 대해 정리한다. 1. ReplicaSets 생성 yaml 파일 활용 yaml파일로 replicaset 을 생성하는 간단한 문제, 오류가 발생하는 부분을 수정해야한다. apiVersion 부분이 잘못되었다고 알려준다. 그러면 어떻게 수정할 수 있는지 알 수 있는 방법은? explain 명령어를 사용하면 apps/v1 이라고 입력해야 되는 것을 알 수 있다. vi 편집기로 apps/v1 으로 수정한다. 이제 정상적으로 생성되는 것을 확인할 수 있다. 다음 문제도 같이 확인해본다. 생성 시 템플릿이 맞지 않다고 오류를 출력한다. 파일을 확인해보자 matchLabels 필드의 tier 부분과, template 필드의 tie..

IT/CKA 2023.07.29
반응형