티스토리 뷰
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"
- Total
- Today
- Yesterday
- git
- kubernetes
- Architecture
- nodejs
- API Gateway
- 마이크로서비스 아키텍처
- k8s
- SA
- Da
- apache
- jeus
- OpenStack
- 오픈스택
- 마이크로서비스
- SWA
- 아키텍처
- node.js
- webtob
- openstack tenant
- aws
- JBoss
- wildfly
- aa
- JEUS7
- TA
- JEUS6
- MSA
- 쿠버네티스
- openstack token issue
- Docker
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |