本文共 3192 字,大约阅读时间需要 10 分钟。
kubectl scale命令用于程序在负载加重或缩小时进行pod扩容或缩小,我们通过一些实际例子来观察scale命令到底能达到什么效果。
命令行创建一个deployment:
kubectl run jerry-nginx --image=nginx:1.12.2
kubectl get deploy查看刚刚创建的deployment:
自动被deployment创建的pod:
kubectl get pod:
使用下列命令查看生成的deployment明细:
kubectl get deployment jerry-nginx -o yaml
apiVersion: extensions/v1beta1
kind: Deploymentmetadata: annotations:deployment.kubernetes.io/revision: "1"
creationTimestamp: 2018-11-29T08:29:06Z
generation: 1 labels:run: jerry-nginx
name: jerry-nginx
namespace: part-0110 resourceVersion: "7203445" selfLink: /apis/extensions/v1beta1/namespaces/part-0110/deployments/jerry-nginx uid: d5c64f72-f3b0-11e8-b308-a20cb743f347spec: progressDeadlineSeconds: 600 replicas: 1 revisionHistoryLimit: 2 selector:matchLabels: run: jerry-nginx
strategy:
rollingUpdate: maxSurge: 25% maxUnavailable: 25%type: RollingUpdate
template:
metadata: creationTimestamp: null labels: run: jerry-nginxspec: containers: - image: nginx:1.12.2 imagePullPolicy: IfNotPresent name: jerry-nginx resources: {} terminationMessagePath: /dev/termination-log terminationMessagePolicy: File dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler securityContext: {} terminationGracePeriodSeconds: 30
status:
availableReplicas: 1 conditions:readyReplicas: 1
replicas: 1 updatedReplicas: 1另一个有用的命令:
kubectl describe deployment jerry-nginx
Name: jerry-nginx
Namespace: part-0110CreationTimestamp: Thu, 29 Nov 2018 16:29:06 +0800Labels: run=jerry-nginxAnnotations: deployment.kubernetes.io/revision: 1Selector: run=jerry-nginxReplicas: 1 desired | 1 updated | 1 total | 1 available | 0 unavailableStrategyType: RollingUpdateMinReadySeconds: 0RollingUpdateStrategy: 25% max unavailable, 25% max surgePod Template: Labels: run=jerry-nginx Containers: jerry-nginx:Image: nginx:1.12.2Port:Host Port: Environment: Mounts:
Volumes:
Conditions: Type Status Reason ---- ------ ------ Available True MinimumReplicasAvailable Progressing True NewReplicaSetAvailableOldReplicaSets: NewReplicaSet: jerry-nginx-69fd9f6c4 (1/1 replicas created)Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal ScalingReplicaSet 9m41s deployment-controller Scaled up replica set jerry-nginx-69fd9f6c4 to 1现在我们使用下面的命令对deployment进行水平扩展:
kubectl scale deployment jerry-nginx --replicas=3
kubectl get pods -l run=jerry-nginx
下图这个Age为15分钟之前的是第一次创建deployment时生成的,其他两个Age为1分钟之前的是执行了scale命令后自动创建的。
选中一个才创建的pod,查看其事件记录:
kubectl describe pod jerry-nginx-69fd9f6c4-8dpvb
kubectl get replicaset
得到自动创建的replication set:
desired = 3意思就是我们水平扩展时指定的参数3.
即使手动删除一个pod实例,replication set又会很快自动创建一个新的:
自动创建的新pod:
本文来自云栖社区合作伙伴“汪子熙”,了解相关信息可以关注微信公众号"汪子熙"。
转载地址:http://fjcfm.baihongyu.com/