티스토리 뷰

728x90
반응형

2019년도 이제 마무리 단계에 접어들었습니다.

올 초 포스팅 계획을 세웠던 것 처럼 다양한 클라우드 관련 포스팅이 주를 이룬 한해 였습니다.

개인적으로도 다양한 클라우드 프로젝트를 경험하고 이행 간 발생한 다양한 이슈와 경험들을 공유하고자 노력했던 한해 였던것 같습니다.

급변하는 IT & DT 시장에 맞추어 아직 포스팅해야 할 내용들이 산더미 같이 많아 현재 포스팅 중인 Kubernetes 마스터하기가 마무리되는데로 이후 포스팅 계획을 다시 세워보고자 합니다.

 

아직 남은 포스팅 항목들은 다음과 같습니다.

1) Docker Rebuild 시 Local Repository의 Docker Image 정리 방안

ex) docker images -f 'dangling=true' -q 적용 방안

2) Kubernetes 무중단 배포

- kubernetes pipeline 적용 시 rolling update 방안

ex) rollout 적용 / 2번 기동되는 현상 파악

3) Kubeconfig / kubectl 등의 build pipeline 적용 시 함께 포함되어야 하는 Kubernetes Module 관리 방안

4) Ingress Controller의 NodePort, ExternalIPs, DaemonSet, MetalLB 적용 방안

5) PV / PVC 적용 및 관리 방안 (https://waspro.tistory.com/580)

- 용량 제한 방법

6) CPU / MEM / DISK 적용 방안 (https://waspro.tistory.com/578)

7) Cluster-IP로 접근하기 위한 Iptables vs IPVS 확인 방법

ex) kube-proxy에서 cluster ip가 추가될 때 iptables rule을 자동으로 등록하여 관리하는 방안

8) Container 기동 후 Complete 에서 지속 Restart되는 현상

- Docker Image의 CMD Script가 종료되어 Init으로 기동되는 CMD를 종료되지 않도록 변경해야 하는 방안

- BASH의 경우 종료되지 않음

9) Node Selector / 추가 제거 적용 방안 (https://waspro.tistory.com/582)

10) Docker Private Registry의 Kubernetes에서 로그인하는 방법 (https://waspro.tistory.com/570)

~/.docker/config 정보가 있을 경우 로그인을 별도로 수행할 필요 없음

11) ansible node 추가 제거 시 적용 방법 (https://waspro.tistory.com/585)

12) ansible-playbook 명령어 확인 (https://waspro.tistory.com/585)

- node 일괄 명령어 전달 방법

13) helm 구성 및 Private Helm Repo 구성 방안

- Chart Museum 등

14) HPA 적용 방안 (https://waspro.tistory.com/578)

- HPA의 Auto Scale Out 조건은 request를 기준으로 판단 (limit과 다르게 설정했을 경우)

- 모든 pods 사용률의 평균으로 판단함

15) Dockerfile ADD 사용 시 압축 자동 해제됨

16) Kubespray 활용 방안

- 앞선 포스팅에 추가로 kube-proxy의 iptables / ipvs 적용 방안 (k8s-cluster.yaml)

17) Kubernetes Service 간의 통신 방안

- /etc/resolve.conf를 기준으로

ex) search default.svc.cluster.local ..... 등이 적용되어 있을 경우

kubectl get service의 serice name을 sub domain으로 두어

wildfly.default.svc.cluster.local 등으로 호출 시 파드 간 service 통신이 가능함

18) Ingress TLS 적용 방안 (https://waspro.tistory.com/579)

- 적용 방법

- TLS 인증서 재반영 절차

- TLS 인증서 http를 https로 redirect 하는 옵션을 막는 방법 등 (metadata.annotations -> nginx.ingress.kubernetes.io/ssl-redirect: "false")

19) Kubernetes Ingress context 변경 시 유의 점

- Ingress Context, WEB / WAS Context, Readiness / Liveness Probe 변경

20) Kubernetes DaemonSet 적용 시 유의 사항

21) Kubernetes Deploy 실패 시 로그가 없을 경우 적용 방안 (https://waspro.tistory.com/591)

- kubectl edit deployment test-deployment

spec.template.spec.containers.command: ["sleep"]

spec.template.spec.containers.args: ["3600"]

22) Container의 Stack Size를 조절하는 방안

- /etc/docker/daemon.json에 반영

- default-ulimits name stack hard soft 적용

23) docker images 빌드 최적화

- 재사용을 위한 docker images의 build 순서를 조정하거나, 불필요한 layer를 줄이는 등의 방법

29) kubectl config use-context minikube

- 다중 클러스터 접근 구성

- https://kubernetes.io/ko/docs/tasks/access-application-cluster/configure-access-multiple-clusters/

30) kube-proxy (iptables vs ipvs)

31) configMap
32) Dockerfile multi-stage build

33) Dockerfile add vs copy https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#add-or-copy

 

# 그 밖의 다양한 명령어

- kubectl get pods podsname -n namespaces -o yaml

- kubectl get pods -w

- kubectl get service --all-namespaces (cluster-ip)

- kubectl --kubeconfig=$HOME/.kube/config rollout restart deployment/test-deployment

- kubectl create secrets tls / ingress yaml apply

- kubernetes kubeplugin & credential add

- kubectl pot pods / nodes

- docker exec -itu root contianer_name bash

- fuser -ck /dev/sdb1 && umount /dev/sdb1

- Ctrl +r ... ESC /Command + Enter 등

- watch -n interval "command"

728x90
반응형