Ingress는 클러스터 외부에서 클러스터 내부 서비스로 HTTP와 HTTPS 경로를 노출한다. 트래픽 라우팅은 인그레스 리소스에 정의된 규칙에 의해 컨트롤된다.
Ingress
vi ingress.yml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- http:
paths:
- path: /pic ip address 뒤에 pic을 붙이면 svc1의 service로 이동
pathType: Prefix https://kubernetes.io/docs/concepts/services-networking/ingress/
backend:
service:
name: svc1
port:
number: 80
- path: /avi ip address 뒤에 avi를 붙이면 svc2의 service로 이동
pathType: Prefix
backend:
service:
name: svc2
port:
number: 80
k apply -f ingress.yml -n ingress-nginx namespace를 ingress-nginx로 꼭 지정해줘야함
k create deployment nginx1 --image nginx --replicas 1 --namespace ingress-nginx
k create deployment nginx2 --image nginx --replicas 1 --namespace ingress-nginx
k expose deploy nginx1 --name svc1 --port 80 --namespace ingress-nginx
k expose deploy nginx2 --name svc2 --port 80 --namespace ingress-nginx
k get deploy,rs,pod,svc -n ingress-nginx
vi index.html
k cp index.html nginx1-6d7876f5d4-b9lnx:/usr/share/nginx/html/index.html -n ingress-nginx
k delete deploy nginx1 nginx2 -n ingress-nginx
k delete svc svc1 svc2 -n ingress-nginx
k delete -f deploy.yaml
-----------------------------------------------------------------------------------------------------------
Autoscaling:
쿠버네티스와 같은 컨테이너 오케스트레이션 툴은 시스템 사용량에 따라 동적으로 컨테이너의 숫자를 조절하는데, 이 기능을 오토스케일링이라 한다. 따라서 오토스케일링 기능이 시스템 사용량을 잘 반영하지 못한다면 자원 부족으로 인해 사용자의 요청에 응답이 늦어지며, 심할 경우 SLA 위반으로 이어질 수 있다.
쿠버네티스에서 오토스케일링은 크게 HPA, VPA가 있다.
- HPA(Horizontal Pod Autoscaler) : 클러스터의 Pod 수를 조절하여 자원 할당량을 조절하는 방법
- VPA(Vertical Pod Autoscaler) : 기존 Pod에 CPU나 메모리를 재할당하여 자원 할당량을 조절하는 방법이다. 자원 재 할당시 시스템을 재시작해야 하는 단점이 있다.
HPA가 수평확장(Scale out) VPA가 수직확장(Scale up)
HPA를 더 많이 사용함
AutoScaling:Metrics Server
wget https://github.com/kubernetes-sigs//metrics-server/releases/latest/download/components.yaml
vi components.yaml
140 - --kubelet-insecure-tls kubelet은 tls를 사용하지 않겠다 라는 의미
k apply -f components.yaml
k edit deploy -n kube-system metrics-server
k top nodes
-----------------------------------------------------------------------------------------------------------
AutoScaling:HPA
core 1 =1000
https://virtualtech.tistory.com/567
vi scaledep-apache.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: scaledep-apache
spec:
selector:
matchLabels:
tem: apache
replicas: 1
template:
metadata:
labels:
tem: apache
spec:
containers:
- name: a1
image: registry.k8s.io/hpa-example
ports:
- containerPort: 80
resources:
limits:
cpu: 300m
requests:
cpu: 200m
---
apiVersion: v1
kind: Service
metadata:
name: svc-apache
labels:
run: svc-apache
spec:
ports:
- port: 80
selector:
tem: apache
k get deploy,svc,rs,pod
k autoscale deploy scaledep-apache --cpu-percent=70 --min=1 --max=7 cpu의 사용율을 70%로하고 서버의 개수는 1개~7개
k get hpa
kubectl run -i --tty load-generator --rm --image=busybox:1.28 --restart=Never -- /bin/sh -c "while sleep 0.01; do wget -q -O- http://svc-apache/; done" cpu 부하를 일으키는 pod 생성하는 명령어
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
network
weave가 bridge역활
vxlan vlan의 확장,개수는 vlan의 제곱
weave는 routing을 하지않고 vxlan이 터널링을해서 통신이 가능한 구조
vi centnode.yml
apiVersion: v1
kind: Pod
metadata:
name: no1-al:
spec:
containers:
- name: a1
image: alpine
command: ["/bin/sh", "-c", "while true; do sleep 1000; done"]
imagePullPolicy: IfNotPresent
nodeName: node1
---
apiVersion: v1
kind: Pod
metadata:
name: no2-al
spec:
containers:
- name: a2
image: alpine
command: ["/bin/sh", "-c", "while true; do sleep 1000; done"]
imagePullPolicy: IfNotPresent
nodeName: node2
k apply -f centnode.yml
kubectl get pod -o wide
kubectl exec -it no1-al -- sh
ip a
'Kubernetes' 카테고리의 다른 글
Ubuntu 24.04 LTS Kubernetes 설치 (0) | 2024.10.03 |
---|---|
kubernetes Service, ClusterIP, NodePort, LoadBalancer (0) | 2023.10.11 |
Kubernetes Replicaset, Deployment, Pod Container에 파일 복사 (0) | 2023.10.10 |
Kubernetes Scheduling, Labels (0) | 2023.10.05 |
Kubernetes pod, namespace (0) | 2023.10.05 |