공부집

코멘토 실무PT 후기 챌린지_쿠버네티스 강의 3주차 후기 본문

comento/Kubernetes

코멘토 실무PT 후기 챌린지_쿠버네티스 강의 3주차 후기

ikemen_hk 2022. 10. 7. 19:43

필수링크: https://bit.ly/3D9XCOz

 

GKE 만들때 유의사항

존, 리전: 리전은 컨트롤 플레인이 분산됨

유지보수 기간: 선택한 리전 시간대에 맞게 설정

워크로드 아이덴티티(Workload Identity): aws와 같은 외부 서비스어카운트와 쿠버 서비스어카운트랑 바인딩 가능

서비스 메쉬: msa 아키텍쳐의 사이드카 관리용

 

K8S 메모

ClusterIP: 컨트롤 플레인 API 호출 및 pod 간의 통신때 사용하는 IP서비스

kubectl apply 와 다르게 kubectl create 명령어는 캐싱이 안됨

dnspolicy: # DNS에 질의를 할때 어떤 순서로 할 것인지 개별 포드마다 지정해 줄 수 있음
# Default : dns 설정을 포드가 실행중인 노드의 설정을 가져와서 사용합니다.
# ClusterFirst : cluster.local같은 미리 지정된 클러스터내부 도메인과 일치하지 않는 “www.example.com” 같은 도메인의 경우에는 클러스터 외부 DNS인 upstream DNS에 질의합니다. (기본값)
# ClusterFirstWithHostNet : 포드를 hostNetwork옵션으로 실행할때 반드시 사용해야 하는 옵션입니다.
# None : 포드가 쿠버네티스 클러스터 내부의 DNS 설정을 무시하도록 하는 설정입니다. 이 경우에는 포드의 spec에 dnsConfig으로 별도 DNS설정을 해줘야 합니다.

creationTimestamp: null # 타임스탬프가 안 찍힘 (지우는 것이 좋음)

restartPolicy:
# Always → 항상 재시작
# OnFailure → 비정상 종료 발생 시 재시작
# Never → 재시작 하지 않음

 

에러가 발생하는 pod 예시

comment로 시작하는 job pod가 계속 뜨는 이유는 "backoffLimit 4" 를 명시했기 때문에 4번 실행됨

 

helm versioning

% kubectl get secret
W1026 16:15:35.240990   45735 gcp.go:119] WARNING: the gcp auth plugin is deprecated in v1.22+, unavailable in v1.26+; use gcloud instead.
To learn more, consult https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke
NAME                             TYPE                                  DATA   AGE
default-token-94cpv              kubernetes.io/service-account-token   3      12h
sh.helm.release.v1.mygolang.v1   helm.sh/release.v1                    1      142m

sh.helm.release.v1.mygolang.v1 이 부분이 버전

helm upgrade mygolang .

upgrade 명령어로 변경사항 수정

 

 

2 Layer 구조

% kubectl get all -n kube-system
...
fluentbit 을 통해서 gke-metrics 만듬 # 로깅
...
daemonset.apps/kube-proxy # [daemonset] pod간의 통신용
...
deployment.apps/l7-default-backend # 외부통신용
...

 

인그레스

L4 타입의 nodeport, loadbalancer 는 Service 타입에 종속

L7 로드밸런스는 Ingress라는 타입이 있음

여기서도 2 레이어 (Ingress -> Service)

 

Daemonset, topologyKeys 차이

로직이 다름, latency가 줄어서 속도가 빠름

* Daemonset은 노드가 뜨기까지 기다리다가 pod 을 세움

* topologyKeys은 pod 을 먼저 대기상태로 두고 노드가 뜨면 바로 pod 띄움

 

K8S Network Policy

컨트롤 플레인 API와 통신하기 위해 인증이 필요함

새로운 리소스를 띄우면 컨트롤 플레인(Identity Provider)(GKE)에서 cert 를 주입

로컬에서 kubectl 명령어가 가능했던 이유도

gcloud container clusters get-credentials ~

명령어를 통해 ".kube/config" 에 토큰 값이 들어있기 때문에 가능

 

 

Comments