k8s 46

certificate signing requests

Introductionnormal user만드는 방법이다.보통은 k8s에서 외부 유저들과 연결되지만 로컬 클러스터 내에서 직접 user를 만들어서 테스트해볼게 있어서 포스팅한다.사실 개념도 잘 이해 안되는데, 나중에 더 공부해봐야할듯..cka준비할때는 유저까지는 안만든다.   Certificates and Certificate Signing RequestsKubernetes certificate and trust bundle APIs enable automation of X.509 credential provisioning by providing a programmatic interface for clients of the Kubernetes API to request and obtain X.509 ce..

k8s/concept 2024.09.19

따배씨 / node selector, drain, taint

Introductionnode에 관련한 명령어들과 CKA에 나오는 문제유형을 써보겠음.일단 advanced라 유료결제안했었고 명령어들이 쎄보여서 어려울줄알았는데 pod만드는것보다 쉬운것같음.따배씨에서 강의 세개인데 쉬워서 그냥 포스팅 하나로 합쳐봄.문제 유형도 꽤 많이있어서 개꿀주제임.Summary노드라벨확인 : kubectl get nodes --show-labels노드 특정라벨 확인 : kubectl get nodes -L 라벨키라벨달기 : kubectl label nodes worker1 whos=muzzinodeSelector와 nodeName은 pod의 spec필드 안에 넣어함라벨삭제 : kubectl label node whos-노드 스케줄링 금지 : kubectl cordon 노드이름노스 ..

k8s/CKA 2024.09.13

따배씨 / ETCD Backup & Restore

Introductionetcd백업과 restore에 대해서 포스팅함Summary export samp="--dry-run=client -o yaml"export grep="grep -iC 3"export now="--force --grace-period 0"$samp, $grep, $now붙은건 이 명령어로 약어만든거니까 주의   # config명령어로 현재 작업 시스템을 먼저 알아야 한다.kubectl config current-context난 저거 하나 뜬다.음 저게 클러스터? 종류인것 같은데 CKA에선 안나오겠지만 만약 여러개가 있으면 해당 클러스터로 이동해서 작업해야한다.  # use-context와 ssh의 차이kode kloud의 Practice Test - Backup and Restore ..

k8s/CKA 2024.09.12

Practice Test / Backup and Restore Methods

Summary버전확인은 etcd pod의 describe나 logs로 확인etcd cluster ip는  listen-client-urls으로 grep하면됨kubectl -n 네임스페이스 이런식으로 치고 get pod 머시기 하면 자동완성 됨backup은 6번restore은 8번restore에서는 백업파일경로랑, data dir을 설정해줘야함. 보통은 /var/lib쪽에 하나 만들음etcdctl명령어치고나서 etcd pod에서 volume의 hostpath를 저 data dir로 바꿔주샘난 --data-dir을 바꿔서 한동안 에러떳음 ㅡㅡ 이거 다시 수정하고 volume쪽 수정해주면 좀 지났다가 다시 복구됨.export samp="--dry-run=client -o yaml"export grep="gre..

k8s/CKA 2024.09.12

Practice Test / Persistent Volume Claims

Summaryexec에서 bash셀이 없으면 kubectl exec -it webapp -- /bin/sh 기본 sh쓰자.storage class없으면 storageclass없는 pv랑만 바운드됨공식문서 pv는 nfs로 되어있는데 문제는 아닐경우는 hostPath부분만 따로 고치자pvc나 pv는 apply나 replace가 안된다. delete후 재생성 하자hostPath 타입은 해당 노드에 연결된 path이다. kode kloud는 control plane노드 하나니까 시험시에는 이걸 확인하자reclaim policy는 pv가 이제 사용안되면 남아있는 자료를 어떻게 처리할거냐에 관점을 둔거임. retain은 그냥 pv남겨두고 나중에 재사용 하게 할거라는거고 delete는 자료 싹다 지워서 바로 avai..

k8s/CKA 2024.09.09

VMware ubuntu 환경에서 k8s환경 구축하기.(2024 11월 기준 가능)

# 바뀌어서 설치가 안되는부분만 최상단에 적음!! 시간이없어서 정리는 못하나, 바뀐부분만 적용하면 k8s클러스터 설치가능합니다. 2024년 9월 포스팅인데 현재 2024/11월 기준 9월에 포스팅한 방법으로 설치가 안됩니다. 한동안 k8s를 다룰일이 없다보니 그새 바껴버렸네요..안되는 부분은 wget으로 다운받는 주소가 아예 구글쪽에서 없애버렸습니다. 전 apt로 gpg키 추가하여 다운을 받았습니다.하지만 패키지 설치하는 gpg키도 오류가 많습니다. 기존포스팅의 docker가 아니라 containerd를 컨테이너 런타임으로 사용했고kube flannel이 아니라 calico로 바꿨습니다! 급하게 땜빵식으로 여기에 바뀐부분 적겠음.node VM을 만들었을떄 마스터 노드 부분임. 1. vm설정을 다 해놓고 ..

k8s/concept 2024.09.06

Mock Exam - 1

Summary이번엔 모의시험이기 때문에 yaml딱히 필요없는건 빨리 지나가도록 하겠음.command다음에 --붙이는건 그 이후로 띄어쓰기 같이 포함하겠다임. 그래서 $samp를 앞에 써줘야함.pod에 문제생기면 logs랑 describe 잘 확인하샘export samp="--dry-run=client -o yaml"export now="--force --grace-period 0"$samp, $now붙은건 이 명령어로 약어만든거니까 주의  # 1    pod만들라고 함kubectl run nginx-pod --image nginx:alpine  - 검토kubectl get podskubectl describe pod nginx-pod |$grep image   # 2pod 만들래kubectl run me..

k8s/CKA 2024.09.06

Practice Test / Core Concept

PODSummary6번 / 멀티컨테이너 파드. describe으로 보면댐9번 / pod에러는 describe해서 event보면댐13번 / 이미지 에러뜬거 yaml수정하고 apply안되고 edit으로 고쳐야함vim에디터 줄 끝 $  # kodekloud https://identity.kodekloud.com/sign-in?redirect_uri=https%3A%2F%2Flearn.kodekloud.com%2Fuser%2Fcourses%2Fudemy-labs-certified-kubernetes-administrator-with-practice-tests%2Fmodule%2Fe6ae2f68-9b3a-439e-a534-d63d372840d2%2Flesson%2F5c388f3e-bd27-41bd-9c3c-613..

k8s/CKA 2024.09.04

k8s / _get_comp_words_by_ref: command not found 자동완성 에러

https://eli-kim.tistory.com/entry/K8s-getcompwordsbyref-command-not-found-%ED%95%B4%EA%B2%B0 K8s, _get_comp_words_by_ref: command not found 해결그냥 작업하면 잘되는데 kubectl에서는 tap을 누르면 아래와 같은 에러가 뜬다. _get_comp_words_by_ref: command not found 보통 bash-completion을 설치하지 않아서 생기는 문제이지만, 다른 때에는 잘 되다가 꼭 keli-kim.tistory.com  # 자동완성 세션 종료후에도 계속 적용되게 하기vim ~/.bashrc젤끝가서 (명령모드 G) # Enable bash completionif [ -f /etc..

k8s/etc 2024.09.03

configMap

# 개념 configMap은 머랄까.. 객체같은거다. 자바스크립트에서 그냥 객체.. 키 값 쌍의 데이터가 여러개 묶음으로 관리되는 그런거라고 보면된다. 이런 객체 데이터들을 configMap으로 만들어두고 pod나 이런 리소스들에서 갖다 쓰는거다. 뭐 환경변수나 이런걸로 쓰게되면, 여러 pod들에 모두 적용되는 특정 환경변수, 예를들어 db접근정보라던지.. 이런게 변경되었을경우 모든 pod에서 일일히 수정&적용해줘야하는데, configMap으로 관리하게 된다면 configMap에서만 변경해주면 이에 연결된 모든 pod들에 해당 변경사항이 적용이 될거라 생각했는데.. env는 안된다. pod를 삭제하고 다시만들어줘야 적용이 되더라.. 대신 volume mount는 되고 참,.. 암튼 # configMap ..

k8s/concept 2023.12.21