개요CKA를 딴지 얼마 지나지 않아서 조금 게을러진게 아닌가 하는 생각이 들던 찰나 리눅서 님께서 Organizer 역할을 하시는 AWS KRUG 자격증 소모임에서 자격증 스터디를 한다는 소식을 들었다.저번에는 CKA 준비를 하고 있기도 했고, 특정 자격증을 목표로 스터디가 진행되고 있었어서 참여를 못했었는데 이번에는 본인이 원하는 자격증 하나만 정해놓고 들어와도 된다고 하셔서 SOA를 목표로 해보려고 한다.처음에는 SAP-C02 (Professional) 자격증을 취득하려고 했는데, 자금난+리테이크 활용을 위해서 SOA 자격증으로 눈을 돌렸다. SAP 너무 어려워...실제로 AWS를 많이 만지긴 하는데 현업에서 뚝딱뚝딱 만들어내지도 못하고 SAA 딴지도 오래돼서 개념이 증발해버렸다. 그리고 리뷰를 여러..
자격증
서론 참 이번 시험 준비하는 데 이상하게 애를 먹었다. 시험 준비하는 후반에 뭔가 집중력도 많이 흐트러지고, 개념에 대한 이해도 중반부와 다르게 헷갈리는 순간들이 찾아왔다. 결국 합격을 하기는 했지만 만족스럽지는 않은 점수인 68점이라 EKS를 공부하면서 다시 한번 더 K8s에 대한 개념을 정리 해보고자 한다. 합격하고 나서 어디서 어떤 문제를 틀렸는지 알려주지 않아서 조금 아쉬웠다... CKA를 취득해서 이제 정량적으로 남들에게 K8s에 대해 이 정도는 알고 있다고 말할 수 있어 조금 편해졌다. 이제 면접을 보거나 누군가 물어보게 된다면 자랑스럽게 뱃지를 들이밀어 봐야겠다 ㅎㅎ... 시험 시작 전 꼭 해야할 것 생각보다 시험 시작 전에 확인하는 과정이 나는 오래 걸렸다. 그래서 무조건 꼭 30분 전에 ..
Cluster Maintenance OS Upgrades 노드 정상적으로 비우기 controlplane ~ ✖ k drain node01 --ignore-daemonsets node/node01 already cordoned Warning: ignoring DaemonSet-managed Pods: kube-flannel/kube-flannel-ds-86sk5, kube-system/kube-proxy-h5rcc evicting pod default/blue-6b478c8dbf-qvshb evicting pod default/blue-6b478c8dbf-74gxg pod/blue-6b478c8dbf-qvshb evicted pod/blue-6b478c8dbf-74gxg evicted node/node01..
Core Concepts PODs 명령어 # 파드 확인하기 kubectl get pod # k get po # 특정 네임스페이스 안에 있는 파드 확인하기 kubectl get pod -n # 파드 더 자세히 확인하기 kubectl get pod -o wide # 파드 생성하기 kubectl run pod # 파드 생성할 때 이미지 설정 kubectl run pod --image=: # 파드 생성할 때 레이블 설정 kubectl run pod --image=: -l = # -l =,= 레이블의 경우 콤마(,)를 넣어주면 다수도 지정 가능 # 파드 상세 정보 출력 kubectl describe pod # 파드 삭제 kubectl delete po kubectl delete po # 다중 삭제도 가능 # 파드..
문제1 How many PODs exist on the system? In the current(default) namespace 풀이 controlplane ~ ➜ k get po NAME READY STATUS RESTARTS AGE webapp-color 1/1 Running 0 2m48s 문제2 What is the environment variable name set on the container in the pod? 풀이 controlplane ~ ➜ k get po webapp-color -o jsonpath='{..env}' [{"name":"APP_COLOR","value":"pink"}] 문제3 What is the value set on the environment variable A..
문제1 How many PODs exist on the system? In the current(default) namespace 풀이 controlplane ~ ➜ k get po NAME READY STATUS RESTARTS AGE ubuntu-sleeper 1/1 Running 0 2m7s 문제2 What is the command used to run the pod ubuntu-sleeper? 풀이 controlplane ~ ➜ k get po -o jsonpath='{..command}' ["sleep","4800"] 문제3 Create a pod with the ubuntu image to run a container to sleep for 5000 seconds. Modify the fil..
Troubleshooting Application Failure 강의에선 예시를 들어 설명했다. 웹 서버와 데이터베이스 서버가 있는 2계층 애플리케이션이 있다. 데이터베이스 파드는 데이터베이스 응용 프로그램을 호스팅하고 데이터베이스 서비스를 통해 웹 서버에 서비스를 제공한다. 웹 서버는 웹 팟에 호스팅되며 웹 서비스를 통해 사용자에게 서비스를 제공한다. 문제의 원인을 찾을 때까지이 맵의 모든 객체와 링크를 확인하는 것이 좋다고 한다. 웹 애플리케이션인 경우 curl을 사용하여 노드 포트의 웹 서버에 액세스할 수 있는지 확인한다. 다음으로 서비스를 확인한다. 웹 파드에 대한 엔드포인트가 있는 지 확인한다. 엔드포인트가 없다면 서비스에 구성된 셀렉터가 파드에 구성된 것과 일치하는지 확인한다. 그 다음 파드 ..
Introduction to Deployment with Kubeadm kubeadm 도구는 kubernetes의 best practice를 사용해 다중 노드 클러스터를 설정하는 데 도움이 된다. 우리는 이미 kube-apiserver, etcd, 컨트롤러 등을 포함한 다양한 구성 요소로 이루어진 kubernetes 클러스터에 대한 몇가지 보안 및 인증 요구 사항을 논의했다. 각 노드에 개별적으로 이러한 다양한 구성 요소를 설치하고 모든 구성 파일을 수정하여 모든 구성 요소가 서로 가리키도록 하고 동작하려면 인증서를 설정하는 것은 매우 귀찮은 작업이다. kubeadm 도구는 이러한 모든 작업을 처리 해 우리를 도와준다. kubeadm 도구를 사용해 kubernetes 클러스터를 설정하는 단계는 먼저 여러..
Ingress 서비스와 인그레스의 차이는 무엇이며 언제 어떤 것을 사용해야할까? 먼저 간단히 서비스를 다시 살펴보고 인스레스를 살펴보자 예를 들어 온라인 스토어를 운영하는 회사를 위해 쿠버네티스에 응용 프로그램을 배포중이라고 가정해보자. 응용프로그램은 myonlinestore.com으로 배포되어 있다. 외부에서 이 온라인 스토어로 접근하기 위해서는 http://www.myonlinestore.com 으로 접근해야 한다. 이는 보통 NodePort를 이용해서 http://10.58.10.1:38080 이런 식으로 접근한다. 프로덕션 레벨의 애플리케이션을 배포한 적 있다면 트래픽을 전달하는 것 외에 수행해야 할 많은 작업이 있다. 예를 들어 사용자가 매번 IP 주소를 입력하는 것을 원하지 않아 DNS 서버를..