반응형 k8s18 CKAD 자격증 취득! 지난달 CKA 자격증 취득에 이어서 CKAD 자격증도 따게 되었다. 이것도 작년에 사놓은 바우처가 올해 12월 까지 였는데 CKA 자격증 준비하면서 공부했으니 잊어버리기 전에 같이 해보는게 좋을것 같다는 생각을 했다. CKAD 를 먼저 본 분들의 후기를 보면 최근에 본 글들이 많이 없었다. 거의다 작년에 변경되기 전에 시험을 보신분들이 많았다. 일단 변경된 시험 범위는 아래 와 같다. CKA 와 CKAD 문제 구성의 차이점 - docker, heml CKA 준비할때에는 k8s 의 리소스를 생성하고 수정하는 것은 많이 연습을 해봤는데 docker 나 helm 까지는 많이 해보지는 않았다. 그래서 부랴부랴 udemy 강의에서 변경된 부분에 대한 강의만 다시 들어보았다. 강의와 연결된 실습도 크게 어려움없이 .. 2022. 5. 2. [K8S] Command and Arguments in K8S K8S의 container 에 정의되는 args 와 command 에 대한 차이점은 다음과 같다. Docker image 빌드시에 ENTRYPOINT 와 CMD 를 정의 할 수 있다. ENTRYPONT : 컨테이너가 실행될 때 반드시 default 로 실행된다. 따라서 컨테이너가 수행될 때 변경되지 않을 실행명령은 ENTRYPOINT 로 정의하는게 좋다. CMD : 컨테이너 실행시 파라메터를 추가 하게 되면 추가된 파라메터를 실행시킨다. 이때 k8s 에서 정의하는 args 는 Docker 이미지의 CMD 에 바인딩 되고 command 는 ENTRYPOINT 에 바인딩 된다. 이름때문에 command가 CMD 에 바인딩된다고 착가하면 안된다. 2022. 4. 12. CKA 자격증 시험보다가 한시간 넘게 국제 전화 한 이야기.... 험난하고 많은 일이 있었던 CKA 자격증 시험을 준비하는 과정과 시험 과정에서 발생했던 어이없는(?) 상황에 대해서 이야기 해보려한다. 이야기 순서는 다음과 같다. 1. CKA 시험 준비 2. 2번의 Fail. 3. 다시 바우처 구입과 재시험 & 시험봐야 하는데 Proctor는 어디에?? 4. 합격 후기 5. 남겨진 문제들 그럼 이야기를 시작해보자. 1. CKA 시험준비 지금이 2022년이고 어느덧 4월이다. 나는 바우처를 작년 5월에 구입을 했다. 올해도 똑같은 해택을 줄지는 모르겠지만 작년에 있었던 Virtual KubeCon 을 참석한 혜택으로 50% 할인 가격으로 CKA 바우처를 구입할수 있었다. 그리고 나도 CKA를 응시했던 많은 분들이 들었던 Udemy 강의(Certified Kubernete.. 2022. 4. 9. [k8s] Network Policy namespaceSelector Network Policy 에 관한 설정들 참고할 만한것 몇가지 작성해본다. 아래 두개의 NetworkPolicy 는 아래 조건을 만족한다. test1 네임스페이스에서 pod 끼리는 전부 호출 가능하다 test1 네임스페이스에서 test2로만 호출가능하며 포트는 80 포트를 사용한다. apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: np namespace: test1 spec: podSelector: {} policyTypes: - Egress egress: - to: - namespaceSelector: matchLabels: kubernetes.io/metadata.name: test2 - ports: - port: 80 pr.. 2022. 3. 28. [k8s] drain 명령어 kubectl drain 노드명 - drain 명령어를 사용하게 되면 해당 노드의 pod 를 다른 노드로 옮긴다. - 실제로는 pod 를 옮기는게 아니라 다른 노드에 재 생성한다. - 데몬셋을 무시하고 진행할 경우에는 --ignore-daemonsets 옵션을 사용한다. 아래와 같이 myserver-002와 myserver-003 에 pod 가 각각 deploy 되어있다. root@myserver-001:~# kubectl get po -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES rollout-nginx-74695fdcd-5trw5 1/1 Running 0 3m55s 10.32.0.2 myserver-002 r.. 2021. 11. 4. taint, cordon 의 차이점은? cordon 지정한 노드에 Pod 를 스케줄링 하지 않는다. taint 지정한 노드에 Pod를 스케줄링 하지 않지만 tolerations 설정을 통해 스케줄링이 가능하다. 2021. 11. 4. [K8S] static pod 에 대해서 몇가지. static pod 에 대해서 알아보다가 몇가지 기억할 만한 것들을 적어본다. - master node 의 /etc/kubernetes/manifests 하위에는 yaml 파일들이 있는데 이 yaml 파일들은 마스터 노드가 실행시에 자동으로 생성되는 static pod 들이다. 보통 etcd, api-server등이 있다. - node에 생성된 static pod 를 지우기 위해서는 해당 노드에 가서 지워야 한다. 지우기 위해서는 노드 안에 있는 kubelet의 config 파일(/var/lib/kubelet/config.yaml) 에 있는 staticPodPath 값을 찾아서 path 위치에 있는 yaml 파일을 지워야 한다. kubectl delete pod 로 지우면 다시 생성된다. - 조회는 가능.. 2021. 2. 4. [K8S] apiserver 에 SAN(Subject Alternative Name) 추가 Lens 라는 툴을 사용해 보려고 host pc 에서 VM 에 있는 K8S 를 연결시켜보려고 시도를 해봤다. 2021/01/05 10:08:52 http: proxy error: x509: certificate is valid for 10.96.0.1, 10.0.1.7, not [ip] 그런데 위와 같은 에러 메세지가 나면서 연결이 되지 않았다. 위에 [ip] 는 host pc 의 ip 이다. Google에서 찾아보니 인증서에 나의 로컬 ip 가 들어가 있지 않아서 라는 이야기가 나왔다. 그럼 현재 k8s 에 있는 apiserver 인증서 내용을 살펴보자. openssl x509 -in /etc/kubernetes/pki/apiserver.crt -text 위와 같이 입력하면 apiserver.crt 파.. 2021. 1. 5. 쿠버네티스 입문 9장 레이블&애너테이션 Label, Annotation Label(레이블) 키-값 쌍으로 구성 파드 관리할때 구분하는 역할을 한다. 규칙 63글자 넘으면 안됨 시작과 끝문자는 알파벳 대소문자 및 숫자 중간에는 대시(-), 밑줄(_), 점(.), 숫자등이 올수 있음 레이블 셀렉터 등호기반(=, ==) 집합기반(in, notin..) 레이블을 모두 만족시켜야 하는경우 (And) 는 쉼표로 연결 실제 서비스에서 정상적으로 셀렉트를 했는지 보려면 서비스의 endpoint를 확인해보면 된다. pod 선택시 -l 옵션 사용 kubectl get pod -l 레이블~ Annotation 쿠버네티스 시스템이 필요한 정보를 담는다. 키는 쿠버네티스 시스템이 인식할 수 있는 값을 사용한다. 출처 : 쿠버네티스 입문 - 90가지 예제로 배우는 컨.. 2020. 12. 30. 쿠버네티스 입문 - 6장 컨트롤러 Controller 개념 Pod 를 관리하는 역학을 한다. Replicatoin Controller(레플리케이션 컨트롤러), ReplicaSet(레플리카 셋) Replication Contller 초기부터 있었던 기본적인 컨트롤러 명시한 Pod 개수만큼 유지하도록 해준다. 현재는 ReplcaSet 을 쓴다. ReplicaSet 레플리케이션 컨트롤러의 발전형. 레플리케이션 컬트롤러와 차이점은 집합기반 셀렉터를 지원 한다. (in, notin, exists) rolling-update 옵션 사용불가 설정 apiVersion: v1 kind: ReplicaSet metadata: name: nginx-replicaset spec: template: metadata: name: nginx-replicaset l.. 2020. 12. 30. 쿠버네티스 입문 - 5장 파드 Pod 개념 쿠버네티스에서 실제로 컨테이너를 묶어서 관리하는 단위 설정 apiVersion: v1 kind: Pod metadata: name: simple-pod (Pod 이름) labels: app: simple-pod (오브젝트를 식별하는 레이블) spec: containers: - name: simple-pod (컨테이너 이름) image: ~~~ (컨네이너에서 사용할 이미지) ports: - containerPort: 8080 Pod 생명주기 Pending -> Running Successed Failed Unknown 컨테이너 진단 ivenessProbe 컨테이너가 실행됐는지 확인 실패시 컨테이너를 종료시키고 재시작 정책에 따라서 재시작 readinessProbe 컨테이너 실행된 후 실제로 서.. 2020. 12. 23. [K8S] affinity 를 이용해서 노드 중복 피하기. 현재 시스템의 구성은 다음과 같다 MasterNode, Worker1, Worker2 여기에 테스트를 위해서 mysql 을 열려놨다. 해당 yaml 은 다음과 같다. apiVersion: apps/v1 kind: Deployment metadata: namespace: spring name: deploy-mysql labels: app: mysql spec: replicas: 2 selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: containers: - name: mysql image: mysql:5.7 env: - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name.. 2020. 11. 20. 이전 1 2 다음 728x90 반응형