일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- lvm #lv #vg #pv
- 티스토리챌린지
- dump #jattach
- NameSpace #NS
- CI #CD #CI/CD
- jgrp000032 #ocp #
- Python #pakage
- bootstrap #css #CSS
- Excel #엑셀
- 백준 #10430
- 오블완
- 네트워크 #NW
- PODS #POD #pods #pod #파드 #재기동 #롤링재기동 #rolling
- Kafka #카프카
- publishnotreadyaddress
- test #비교
- jmap #jstack
- function #사용자 정의 함수
- EFK
- istio #k8s #kubernetes
- dify
- OCP
- lenova #레노버 #노트북
- DB #mariaDB #SQL
- shell #shell script
- Swap Memory
- Grid #CSS
- EKS
- Linux #wc
- Node #POD #Container
- Today
- Total
목록DevOps/Kubernetes (23)
BEOM_IT

오픈소스 소프트웨어 C++로 만들어진 엔보이를 사용하여 쿠버네티스 클러스터에 서비스 매시를 구현 서비스매시: 그물 형태의 통신이나 경로를 제어하는 개념 istio는 서비스 매시를 쿠버네티스 클러스터 외부의 VM이나 물리서버로 확장 여러 클러스터를 istio를 연계함으로써 서비스 매시를 구성한 멀티 클러스터 환경 구축 이스티오 아키텍처 이스티오는 각 파드안에서 Sidecar로 Envoy 프록시가 들어가 있는 형태 마이크로서비스간 통신은 엔보이를 반드시 통과 Envoy Sidecar 작동 클라이언트 -> envoy -> app -> envoy -> envoy -> app
우선 순위 : BestEffort > Burstable > Guaranteed 컨테이너의 리소스 설정으로 결정됨 Guaranteed (보장, 개런티드) 모든 컨테이너에 requests, limit 설정 request, limit의 memory, cpu 모두 설정 각 컨테이너의 request와 limit의 memory, cpu 값이 같음 apiVersion: v1 kind: Pod metadata: name: qos-demo namespace: qos-example spec: containers: - name: qos-demo-ctr image: nginx resources: limits: memory: "200Mi" cpu: "700m" requests: memory: "200Mi" cpu: "700m"..
$ oc get ns -> ns 조회 $ oc describe no -n [ns] ->특정 ns의 node를 조회 $ oc describe no | more -> node 조회(몇 개 없다면..) Allocated resource: 항목의 CPU/Memory 의 Requests , Limit을 확인후 배포 결정 ex) node 2개 (12core/24Gi) A-node 6core/12Gi 사용중(50%/50%) $ oc adm top no -n [ns] 조회시 CPU/Memory가 (6%/46%)사용중 이럴경우 50%만 허용
CPU/MEM 값 조회 kubectl top pods -n [ns 명] or kubectl get hpa -A Pod 스펙 변경 pod의 cpu/mem를 수정할 때 사용 requests는 생성 시 필요한 최소 자원이고 최대 limits 까지 자원을 사용할 수 있다. kubectl edit deploy -n [ns명] [deploy명] resources: limits: cpu: 100m memory:500Mi requests: cpu:100m memory:500Mi 신규 Pod 배포시 빠른 배포 $ kubectl get replicaset -n [ns명] 레플리카 조회 후 수정 $ kubectl edit replicaset -n [ns명] [기존replicaset] spec: replicaset:0
run을 사용해서 eginx1.14 버전 80포트를 사용하는pod 생성 kubectl run [pod명] --image=nginx:1.14 --port 80 실행 하는지 확인만 하고 싶을경우 뒤에 --dry-run을 붙힌다. 만약 yaml파일로 저장해 사용하고 싶다면? kubectl run [pod명] --image=nginx:1.14 --port 80 --dry-run -o yaml > [파일명].yaml 저장한 파일로 pod를 생성하려면? kubectl create -f [파일명].yaml 잘 만들어 졌는지 확인 kubectl get pods -o wide 명령어를 사용하면 ip가 나옴 kubectl curl [ip주소]를 적어서 잘 생성되었나 확인 create를 사용해서 아파치 서버를 사용하는 de..
namespace:클러스터 하나를 여러 개의 논리적 단위로 나눠서 사용한 것 CLI로 만들기 $ kubectl create namespace [ns 명] $ kubectl get namespaces yaml로 만들기 $ kubectl create namespace [ns명] --dry-run -o yaml > [ns명].yaml vim [ns명].yaml $ kubectl create -f [file명].yaml -n [ns명] 삭제 $ kubectl delete namespace 기본 네임스페이스로 지정 $ kubectl config set-context $(kubectl config current-context) --namespace=[ns]
서비스 불가 상태인 경우 rollout restart 명령어를 통해 rolling 재기동을 수행한다. Rolling 재기동을 하게되면 POD 하나가 먼저 새로 기동되고 기존 POD 하나가 내려가며 항상 Min POD수를 충족시켜 Down-time이 존재하지 않는다. Bastion서버 접속 root계정 스위칭 Kubectl get ns -네임스페이스 명 확인 Kubectl get deploy -n [namespace명]- 디플로이먼트명 확인 Kubectl rollout restart deploy [deployment명] -n [namespace명]