- Created by Sansae, last modified on Mar 02, 2024
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 23 Next »
Deployment는 쿠버네티스에서 가장 널리 사용되는 오브젝트입니다. ReplicaSet을 이용하여 Pod을 업데이트하고 이력을 관리하여 롤백Rollback하거나 특정 버전revision으로 돌아갈 수 있습니다.
http://wiki.ciscolinux.co.uk/index.php/Kubernetes/Deployment,_ReplicaSet_and_Pod


https://dev-k8sref-io.web.app/docs/workloads/deployment-v1/
apiVersion: 쿠버네티스 API버전을 가리킴
kind: 리소스 유형
metadata (ObjectMeta): 포드와 관련된 이름, 네임스페이스, 라벨, 그밖의 정보
- namespace
- name
- labels
spec (DeploymentSpec): PodTemplate
template
- metadata
- name
- labels
- spec
- containers
- volumes
- metadata
selector
replicas
- strategy: RollingUpdate(default)
- status(DeploymentStatus) : 포드의 상태, 각 컨테이너의 설명 및 상태, 포드 내부의 IP 및 그밖의 기본 정보 등
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deploy
labels:
app: myapp-deploy
type: front-end
spec:
template:
metadata:
name: nginx
labels:
app: myapp
type: front-end
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
selector:
matchLabels:
type: front-end
replicas: 3
k create deployment --image=nginx nginx --dry-run=client -o yaml > nginx-deploy.yaml
sansae@sansaeAir15m2 ~ % k apply -f nginx-deploy.yaml deployment.apps/nginx-deploy created sansae@sansaeAir15m2 ~ % k get all NAME READY STATUS RESTARTS AGE pod/nginx-deploy-d4d6c7dd8-4zx7v 1/1 Running 0 3s pod/nginx-deploy-d4d6c7dd8-m6p7j 1/1 Running 0 3s pod/nginx-deploy-d4d6c7dd8-rm5hj 1/1 Running 0 3s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 8h NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/nginx-deploy 3/3 3 3 3s NAME DESIRED CURRENT READY AGE replicaset.apps/nginx-deploy-d4d6c7dd8 3 3 3 3s
Deployment Strategy

sansae@sansaeAir15m2 ~ % k get pod
NAME READY STATUS RESTARTS AGE
nginx-deploy-d4d6c7dd8-67vfc 1/1 Running 0 15s
nginx-deploy-d4d6c7dd8-d6zrj 1/1 Running 0 17s
nginx-deploy-d4d6c7dd8-zhq6g 1/1 Running 0 16s
sansae@sansaeAir15m2 ~ % k set image deployment/nginx-deploy nginx=nginx:1.15.12
deployment.apps/nginx-deploy image updated
sansae@sansaeAir15m2 ~ % k describe deploy nginx-deploy
Name: nginx-deploy
Namespace: default
CreationTimestamp: Fri, 08 Mar 2024 23:17:39 +0900
Labels: app=myapp-deploy
type=front-end
Annotations: deployment.kubernetes.io/revision: 2
Selector: type=front-end
Replicas: 3 desired | 3 updated | 3 total | 3 available | 0 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 25% max unavailable, 25% max surge
Pod Template:
Labels: app=myapp
type=front-end
Containers:
nginx:
Image: nginx:1.15.12
Port: 80/TCP
Host Port: 0/TCP
Environment: <none>
Mounts: <none>
Volumes: <none>
Conditions:
Type Status Reason
---- ------ ------
Available True MinimumReplicasAvailable
Progressing True NewReplicaSetAvailable
OldReplicaSets: nginx-deploy-d4d6c7dd8 (0/0 replicas created)
NewReplicaSet: nginx-deploy-77978cf89b (3/3 replicas created)
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ScalingReplicaSet 38s deployment-controller Scaled up replica set nginx-deploy-d4d6c7dd8 to 3
Normal ScalingReplicaSet 15s deployment-controller Scaled up replica set nginx-deploy-77978cf89b to 1
Normal ScalingReplicaSet 14s deployment-controller Scaled down replica set nginx-deploy-d4d6c7dd8 to 2 from 3
Normal ScalingReplicaSet 14s deployment-controller Scaled up replica set nginx-deploy-77978cf89b to 2 from 1
Normal ScalingReplicaSet 13s deployment-controller Scaled down replica set nginx-deploy-d4d6c7dd8 to 1 from 2
Normal ScalingReplicaSet 13s deployment-controller Scaled up replica set nginx-deploy-77978cf89b to 3 from 2
Normal ScalingReplicaSet 12s deployment-controller Scaled down replica set nginx-deploy-d4d6c7dd8 to 0 from 1
- No labels