쿠버네티스: 내 포드를 확장하는 방법
난 쿠버네티스가 처음이야. 나는 내 포드를 기어오르려고 노력한다. 처음에 나는 3개의 포드를 시작했다:
./cluster/kubectl.sh run my-nginx --image=nginx --replicas=3 --port=80
시작하는 포드가 3개 있었어요. 처음에 복제 컨트롤러를 사용하여 스케일업/스케일다운을 시도했지만 이 컨트롤러는 존재하지 않았습니다. 지금은 복제 세트인 것 같습니다.
./cluster/kubectl.sh get rs
NAME DESIRED CURRENT AGE
my-nginx-2494149703 3 3 9h
복제본 집합에 설명된 복제본 수를 변경하려고 했습니다:
./cluster/kubectl.sh scale --replicas=5 rs/my-nginx-2494149703
replicaset "my-nginx-2494149703" scaled
하지만 나는 여전히 나의 원래 포드 3개를 본다
./cluster/kubectl.sh get pods
NAME READY STATUS RESTARTS AGE
my-nginx-2494149703-04xrd 1/1 Running 0 9h
my-nginx-2494149703-h3krk 1/1 Running 0 9h
my-nginx-2494149703-hnayu 1/1 Running 0 9h
나는 5개의 꼬투리를 볼 수 있을 것으로 예상한다.
./cluster/kubectl.sh describe rs/my-nginx-2494149703
Name: my-nginx-2494149703
Namespace: default
Image(s): nginx
Selector: pod-template-hash=2494149703,run=my-nginx
Labels: pod-template-hash=2494149703
run=my-nginx
Replicas: 3 current / 3 desired
Pods Status: 3 Running / 0 Waiting / 0 Succeeded / 0 Failed
왜 안 올라가요? 배치 과정에서 뭔가를 변경해야 합니까?
스케일업 후 사용자를 설명할 때 다음과 같은 것이 나타납니다. (여기서는 하나의 실행 포드에서 세 개의 실행 포드로 스케일업을 시도합니다.). 하지만 그것은 하나의 러닝 포드로 남아있다. 나머지 두 명은 즉시 시작되고 살해된다
34s 34s 1 {replicaset-controller } Normal SuccessfulCreate Created pod: my-nginx-1908062973-lylsz
34s 34s 1 {replicaset-controller } Normal SuccessfulCreate Created pod: my-nginx-1908062973-5rv8u
34s 34s 1 {replicaset-controller } Normal SuccessfulDelete Deleted pod: my-nginx-1908062973-lylsz
34s 34s 1 {replicaset-controller } Normal SuccessfulDelete Deleted pod: my-nginx-1908062973-5rv8u
TL;DR: 복제본 세트 대신 배포를 직접 확장해야 합니다.
복제본 집합의 크기를 조정하려고 하면 복제본 집합은 (매우 짧은 시간 동안) 새 카운트 5가 됩니다. 그러나 배포 컨트롤러는 복제 세트의 현재 개수가 5개인 것을 확인하고 복제 세트가 3개여야 한다는 것을 알고 있으므로 다시 3개로 재설정합니다. 작성된 복제본 세트를 수동으로 수정하면 시스템 컨트롤러와 싸우게 됩니다(지치지 않고 항상 오래 지속됩니다).
쿠버네테스로 시작하기 때문에 이것이 최선의 방법인지는 잘 모르겠지만, 나는 내 yaml 파일을 업데이트해서 이것을 했다
# app.yaml
apiVersion: apps/v1
...
spec:
replicas: <new value>
그리고 달리기
를 실행하여 새 복제본 수를 확인할 수 있습니다
저는 구글 클라우드에서 VM을 축소하는 것에도 관심이 있었습니다. 나는 이것을 했다
아래 예제에서는 "Pod/리소스/배포"를 확장/축소하는 방법을 보여 줍니다.
k8smaster@k8smaster:~/debashish$ more createdeb_deployment1.yaml
---
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: debdeploy-webserver
spec:
replicas: 1
selector:
matchLabels:
app: debdeploy1webserver
template:
metadata:
labels:
app: debdeploy1webserver
spec:
containers:
-
image: "docker.io/debu3645/debapachewebserver:v1"
name: deb-deploy1-container
ports:
-
containerPort: 6060
배포 생성 -->
**kubectl -n debns1 create -f createdeb_deployment1.yaml**
k8smaster@k8smaster:~/debashish$ `kubectl scale --replicas=5 **deployment**/debdeploy-webserver -n debns1`
(5개 구축 규모 확대)
k8smaster@k8smaster:~/debashish$ kubectl get pods -n debns1
NAME READY STATUS RESTARTS AGE
debdeploy-webserver-7cf4fb74c5-8wvzx 1/1 Running 0 16s
debdeploy-webserver-7cf4fb74c5-jrf6v 1/1 Running 0 16s
debdeploy-webserver-7cf4fb74c5-m9fpw 1/1 Running 0 16s
debdeploy-webserver-7cf4fb74c5-q9n7r 1/1 Running 0 16s
debdeploy-webserver-7cf4fb74c5-ttw6p 1/1 Running 1 19h
resourcepod-deb1 1/1 Running 5 6d18h
k8smaster@k8smaster:~/debashish$ **kubectl get ep -n debns1**
NAME ENDPOINTS AGE
frontend-svc-deb 192.168.1.10:80,192.168.1.11:80,192.168.1.12:80 + 2 more... 18h
frontend-svc1-deb 192.168.1.8:80 14d
frontend-svc2-deb 192.168.1.8:80 5d19h
k8smaster@k8smaster:~/debashish$ **kubectl scale --replicas=2** deployment/debdeploy-webserver -n debns1
()
deploy.extensions/messagedeploy-webserver 크기 조정
k8smaster@k8smaster:~/debashish$ **kubectl get pods -n debns1**
NAME READY STATUS RESTARTS AGE
debdeploy-webserver-7cf4fb74c5-8wvzx 1/1 Terminating 0 35m
debdeploy-webserver-7cf4fb74c5-jrf6v 1/1 Terminating 0 35m
debdeploy-webserver-7cf4fb74c5-m9fpw 1/1 Terminating 0 35m
debdeploy-webserver-7cf4fb74c5-q9n7r 1/1 Running 0 35m
debdeploy-webserver-7cf4fb74c5-ttw6p 1/1 Running 1 19h
resourcepod-deb1 1/1 Running 5 6d19h
k8smaster@k8smaster:~/debashish$ **kubectl get pods -n debns1**
NAME READY STATUS RESTARTS AGE
debdeploy-webserver-7cf4fb74c5-q9n7r 1/1 Running 0 37m
debdeploy-webserver-7cf4fb74c5-ttw6p 1/1 Running 1 19h
resourcepod-deb1 1/1 Running 5 6d19h
k8smaster@k8smaster:~/debashish$ kubectl **scale --current-replicas=4 --replicas=2** deployment/debdeploy-webserver -n debns1 (Check the current no. of deployments. If current replication is 4, then bring it down to 2, else dont do anything)
error: Expected replicas to be 4, was 2
k8smaster@k8smaster:~/debashish$ **kubectl scale --current-replicas=3 --replicas=10 deployment/debdeploy-webserver -n debns1**
error: Expected replicas to be 3, was 2
k8smaster@k8smaster:~/debashish$ **kubectl scale --current-replicas=2 --replicas=10 deployment/debdeploy-webserver -n debns1**
deploy.extensions/messagedeploy-webserver 크기 조정
k8smaster@k8smaster:~/debashish$ **kubectl get pods -n debns1**
NAME READY STATUS RESTARTS AGE
debdeploy-webserver-7cf4fb74c5-46bxg 1/1 Running 0 6s
debdeploy-webserver-7cf4fb74c5-d6qsx 0/1 ContainerCreating 0 6s
debdeploy-webserver-7cf4fb74c5-fdq6v 1/1 Running 0 6s
debdeploy-webserver-7cf4fb74c5-gd87t 1/1 Running 0 6s
debdeploy-webserver-7cf4fb74c5-kqdbj 0/1 ContainerCreating 0 6s
debdeploy-webserver-7cf4fb74c5-q9n7r 1/1 Running 0 47m
debdeploy-webserver-7cf4fb74c5-qjvm6 1/1 Running 0 6s
debdeploy-webserver-7cf4fb74c5-skxq4 0/1 ContainerCreating 0 6s
debdeploy-webserver-7cf4fb74c5-ttw6p 1/1 Running 1 19h
debdeploy-webserver-7cf4fb74c5-wlc7q 0/1 ContainerCreating 0 6s
resourcepod-deb1 1/1 Running 5 6d19h
이건 나한테 효과가 있어
kubectl scale --replicas=<expected_replica_num> deployment <deployment_label_name> -n <namespace>
예
# kubectl scale --replicas=3 deployment xyz -n my_namespace
0으로 축소한 다음 필요한 포드 수로 축소합니다(3과 동일하다고 가정)
kubectl scale deployment <deployment-name> --replicas=0 -n <namespace>
kubectl scale deployment <deployment-name> --replicas=3 -n <namespace>
생성된 컨테이너를 관리하기 위해 또는 를 생성합니다. 이것이 쿠버네티스가 작동하는 방식이다. 개체를 변경하면 개체가 변경 내용을 취소합니다.당신은 객체를 변경해야 합니다.
위해서
kubectl scale deployment <deployment-name> --replicas=3 -n <namespace>
위해서
kubectl scale statefulsets <stateful-set-name> --replicas=3 -n <namespace>
kubectl 명령줄 도구를 사용하여 포드와 함께 복제본 세트를 만들 수 있습니까
'개발하자' 카테고리의 다른 글
리눅스 터미널에서 모든 셀에서 주피터 노트북의 출력을 지우는 방법은 무엇입니까? (0) | 2023.06.19 |
---|---|
클러스터 외부의 응용 프로그램에서 kubernetes의 게시물 액세스 (0) | 2023.06.18 |
주피터 노트북에서 Python을 사용하여 github에서 데이터 가져오기 (1) | 2023.06.17 |
Node.js Typescript 프로젝트 유형 오류 [ERR_UNKNOWN_FILE_EXTENSION]을(를) 실행할 수 없습니다: /app/src/App.ts에 대해 알 수 없는 파일 확장명 ".ts"입니다 (0) | 2023.06.17 |
svelte를 사용한 디버깅 (0) | 2023.06.16 |