전체 글 464

[CKA] 49. CKA 시험 후기

개요. 2023.11.19 시험 나온 시험 문제. killer.sh의 문제 수준보다 살짝 쉽게 나옴. 살짝 쉽다는 말은 문제의 형식은 killer.sh 형식인데. 결과에 대해서 명확하게 어떻게 하라고 적혀있음. 그리고 전 범위에서 섞여서 고루고루 나오기 때문에 뭐하나 거를것이 없다. 실제 서비스를 운영하기 위해서 필요한 모든 환경이 시험으로 나온다고 생각 하면 편합니다. 결과 합격!! 시험 Tip 1. 명령어 치는 속도가 핵심이다. 2. kubectl 안되는 것만 docs를 찾고 나머지는 kubectl로 생성해서 하는게 좋다. 3. vim에 익숙해야 한다. killer.sh 에서 무한으로 연습하기 미진한점 sidecar pattern이 부족함. container강 data공유하는 부분 공부가 필요함. n..

Cloud/k8s-CKA 2023.11.19

[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] 47. k8s 문제 풀이 모르는 것 정리

image 교체 kubectl set image deployment/ngin-deploy nginx=nginx:1.17.1 nginx : container name nginx:1.17.1 : image name JSONPath를 요약해서 보기 kubectl get node -o json | jq -c 'paths' 또는 kubectl get node -o json | jq 'paths | join(".")' Pod volume emptyDir의 용도 emptyDir은 쿠버네티스(Kubernetes)에서 사용되는 일시적인 볼륨 유형으로, 파드(Pod)에 대한 임시 저장 공간을 제공합니다. emptyDir 볼륨의 주요 용도는 다음과 같습니다: 데이터 공유 및 통신: 파드 내의 서로 다른 컨테이너 간에 데이터..

Cloud/k8s-CKA 2023.11.17

[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

[cygwin] sshd no password login (linux to windows)

개요 window에 cygwin을 설치 후 linux에서 window로 ssh 를 통하여 접속시 공개키를 이용하여 접속하는 방법 cygwin 설치 https://www.cygwin.com/install.html cygwin sshd 설정 1. PubkeyAuthentication 사용 설정 yes로 설정 PubkeyAuthentication yes 2. dns 사용하지 않는 환경에서 접속 빠르게 하기 UseDNS no Troubleshooting 로그인시 passwor을 계속 물어볼 경우 StrictModes가 yes로 설정된 경우, SSHD는 사용자의 홈 디렉터리와 SSH 관련 파일들의 권한이 엄격하게 설정되어 있는지 확인합니다. 이를 위한 파일 권한 설정은 다음과 같습니다: 사용자의 홈 디렉터리 (~..

[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] 44. network policy

개요 k8s에서 network ploicy를 사용하여 network 보안을 어떻게 처리하는지 알아보겠습니다. Network Policy란? network 방향 및 port를 기반으로 cluster 내부의 Pod들 간의 network traffic을 제어하는 object입니다. 하지만 ipblock 설정을 통해서 cluster 외부와의 통신을 허용해 줄 수는 있습니다. NetworkPolicy 자체는 외부 IP 주소를 직접 차단하는 메커니즘을 제공하지 않습니다. 아래 그림으로 설명을 하면 Web Pod , API Pod , DB Pod가 서로 통신하고 있는 상태입니다. 이 상태에서 DB Pod에서 API Pod의 요청만 받고 싶을 때는 Network Policy를 DB Pod에 적용하여 3306에 대한 i..

Cloud/k8s-CKA 2023.11.05

[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

[Debugging] Linux application debugging

개요 linux에서 C++로 개발된 application을 실행 할 때 Debugging하는 방법을 알아보겠습니다. 목차 ... 실행 전 연결된 library 확인 리눅스에서 현재 실행 전 프로세스에 로딩될 라이브러리를 확인하기 위해 여러 가지 방법을 사용할 수 있습니다. 다음은 그 중 몇 가지 방법입니다: ldd ldd 명령어는 실행 파일에 대한 종속 라이브러리를 출력합니다. 실행 중인 프로세스의 실행 파일을 찾아서 `ldd`를 사용하여 어떤 라이브러리가 연결되었는지 확인할 수 있습니다. ldd /path/to/executable 이 방법은 실행 파일에 대한 경로를 알고 있어야 하며, 현재 로딩된 라이브러리와 실행 시 로딩될 라이브러리 사이에 차이가 있을 수 있음에 유의해야 합니다. nm nm 명령어는..