CKA 42

[k8s] trouble shooting

재부팅후 node가 NotReady인 경우 hostname 확인 구축 당시 hostname이 k8s-controlplane이 이거였는데 my-k8s-controlplane 이걸로 변경되어 안된다는 말입니다. Log 확인 명령어 journalctl -u kubelet.service -f 문제의 로그 Nov 29 09:12:08 my-k8s-controlplane kubelet[1463]: E1129 09:12:08.248902 1463 controller.go:146] "Failed to ensure lease exists, will retry" err="leases.coordination.k8s.io \"my-k8s-controlplane\" is forbidden: User \"system:node:k..

Cloud/k8s-CKA 2023.11.29

[CKA] 48. killer.sh

context 찾기 kubectl 로 찾기 kubectl config view -o jsonpath='{.contexts[*].name}' | tr " " "\n" tr 사용법 단어 변경 tr " " '\n" 단어 삭제 tr -d '\n" kubectl 없이 찾기 cat ~/.kube/config | grep ^current | sed -e "s/current-context: //" control node에 배포 control node에는 taint가 걸려있음 그래서 toleration을 걸어야 합니다. 그러나 정확한 node에 배포 하기 위해서 nodeSelector로 어떠한 label을 가진 node인지를 선택 해야 합니다. nodeSelector 하는 이유 toleration이 걸려있는 pod는 아..

Cloud/k8s-CKA 2023.11.18

[CKA] 46. k8s 문제 풀이(업데이트, 출력형식, PV)

개요 k8s 업데이트하는 방법 및 출력 방식 변경을 알아보겠습니다. 핵심 1. kubeadm으로 cluster update 2. kubelet update 3. update할 node는 drain을 통하여 pod를 안전한 곳에 이동 controlplane 업데이트 Pod를 모두 다른 node로 이동 kubectl drain controlplane --ignore-daemonsets daemonsets는 자동으로 drain 되지 않음으로 --ignore-daemonsets 을 주어서 강제로 내려야 합니다. package 업데이트 apt update 업데이트 가능 package 확인 apt-cache madison kubeadm kubeadm update kubeadm 자동 업데이트 풀기 apt-mark u..

Cloud/k8s-CKA 2023.11.15

[CKA] 45. Troubleshooting

개요 k8s를 사용하면 마주칠 수 있는 문제점 및 해결 방법을 알아보겠습니다. Application 접속 실패 확인 접근성 확인을 통하여 application의 실패 원인을 찾는다. 환경 단계 1. curl로 접속을 확인 2. service의 selector 확인 selector가 맞게 되었는지 확인. 웹 접속이 잘되면 web service는 정상 동작 하는 것이다. kubectl get service -o yaml > service.yaml 로 확인 후 수정 하는 것도 좋다. 3. Pod의 상태 확인 Pod의 State 확인 Pod의 describe 확인 Pod의 Log 확인 현재 Pod의 Log확인 이전 Pod의 Log확인 -f --previous 로 이전 Pod Log 확인 통신 안될때 확인 사항 ..

Cloud/k8s-CKA 2023.11.07

[CKA] 43. k8s 각종 보안 (image, securityContext)

개요 k8s에서 사용되는 각종 보안을 image, securityContext 알아보겠습니다. image 보안 k8s에서 image를 pull로 받아 올 때 대분 docker hub를 사용합니다. 그러나 대외비로 작성된 image의 경우 따로 Private Repository를 만들어서 사용합니다. 본 post에는 private repository 구성부터 k8s에서 어떻게 사용할 수 있는지 알아보겠습니다. private repository 구성 방법은 아래 post 확인 부탁 드립니다. [docker] docker registry-image 서버 구축 private repository login docker login private-registry.io private repository image 주소..

Cloud/k8s-CKA 2023.11.05

[CKA] 42. service account

개요 k8s에는 2개의 계정분류가 존재합니다. 1. user account - 사람이 k8s관리는 위해서 사는 계정 2. service account - k8s service가 k8s에 무언가 요청을 하기 위해서 사용하는 게정 위 두 종류 계정 중. user account은 지난번 Post([CKA] 38. k8s에서 사용자 추가 및 권한 제어)를 참고하시면 되시고요. 이번 Post에서는 service account가 무엇인지 살펴보겠습니다. 용도 K8s의 Service Account는 주로 Pods, system components 등이 Kubernetes API와 상호작용할 때 사용하는 계정입니다. 그러면 이제부터 Service Account에 대하여 상세하게 알아보겠습니다. 개념 Service Ac..

Cloud/k8s-CKA 2023.11.04

[CKA] 41. Authorization (권한부여)

개요 k8s은 Authorization을 통하여 사용자가 할 수 있는 것을 제한하고 있습니다. 그래서 이번에는 Authorization의 종류 및 사용법을 알아보겠습니다. Authorization mechanism 종류 k8s에서는 Authorizaion을 위하여 6개의 mechanism을 제공합니다. Node Authorization node authorizion은 kubelet이 API 서버에 요청할 때 사용됩니다. 이 mechanism은 kubelet이 자신에게 할당된 resource에만 access 할 수 있도록 제한합니다. ABAC (Attribute-based access control) ABAC는 속성 기반의 권한 부여 방식입니다. 정책 파일에서 정의된 속성 조합을 기반으로 요청이 허용되는지..

Cloud/k8s-CKA 2023.10.28

[CKA] 40. API 그룹과 목적

개요 k8s에서 제공하는 apiserver의 api 그룹과 api 사용 시 필요한 인증을 알아보겠습니다. API 그룹 k8s에서는 cluster관리를 위해서 다양한 API를 제공합니다. 그리고 이러한 API를 용도에 맞게 분류해 놓았습니다. https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#api-overview Kubernetes API Reference Docs API Overview Welcome to the Kubernetes API. You can use the Kubernetes API to read and write Kubernetes resource objects via a Kubernetes API endpoint...

Cloud/k8s-CKA 2023.10.28

[CKA] 38. k8s에서 사용자 추가 및 권한 제어

개요 k8s에서 사용자를 추가하는 방법을 알아보고 사용자의 권한을 제한하는 방법을 알아보겠습니다. 그럼 사용자를 생성하는 방법부터 시작하겠습니다. 핵심 csr을 이용하여 CertificateSigningRequest를 적용한 후 승인 한다. 이때 csr은 base64로 인코딩된것을 사용한다. 사용자 추가 절차 1. 개인키 생성 2. csr 생성 3. CertificateSigningRequest Object 생성 이때 csr을 base64 로 인코딩한 값을 사용합니다. 4. CertificateSigningRequest Object 승인 승인은 contoller-manager에서 담당합니다. 5. 승인된 CertificateSigningRequest Object에서 승인된 인증서 가져오기 6. 승인된 인..

Cloud/k8s-CKA 2023.10.15

[CKA] 37. k8s에서의 상호 인증 원리

개요 k8s에서 어떻게 상호 인증을 하는지 알아보겠습니다. 사전 필수 지식 [CKA] 35. Security - TLS통신 이해를 위한 PKI 기본 지식 상호 인증 원리 k8s에 있는 여러 service(apiserver, etcd, kubelet ...) 들은 상호 인증을 위해서 인증서와 개인키를 사용합니다. service 별 인증서 아래 그림은 service별 인증서(*.crt) 및 개인키(*. key)를 분리해 놓은 자료입니다. 위 그림에서 모든 인증서 admin.crt, scheduler.crt, controller-manager.crt, kube-proxy.crt 등등은 모두ca.crt 와 ca.key를 사용하여 전자 서명이 되어있습니다. admin.crt 생성 과정 모든 인증서 생성과정은 이름..

Cloud/k8s-CKA 2023.10.13