티스토리 뷰

Kubernetes

[Kubernetes] Deployment 실습

SchoolDevops 2022. 4. 11. 11:34

Deployment 살펴보기

Deployment 확인하기.

kubectl get deploy
or
kubectl get deployment

NAME                  READY   UP-TO-DATE   AVAILABLE   AGE
my-deployment   0/4     4            0           7s

Deoloyment 상세보기

kubectl describe deploy frontend-deployment 

Name:                   frontend-deployment
Namespace:              default
CreationTimestamp:      Fri, 12 Mar 2021 00:41:31 +0000
Labels:                 <none>
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               name=busybox-pod
Replicas:               4 desired | 4 updated | 4 total | 0 available | 4 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  name=busybox-pod
  Containers:
   busybox-container:
    Image:      busybox888
    Port:       <none>
    Host Port:  <none>
    Command:
      sh
      -c
      echo Hello Kubernetes! && sleep 3600
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      False   MinimumReplicasUnavailable
  Progressing    True    ReplicaSetUpdated
OldReplicaSets:  <none>
NewReplicaSet:   frontend-deployment-56d8ff5458 (4/4 replicas created)
Events:
  Type    Reason             Age    From                   Message
  ----    ------             ----   ----                   -------
  Normal  ScalingReplicaSet  2m31s  deployment-controller  Scaled up replica set frontend-deployment-56d8ff5458 to 4

Deployment 매니페스트 생성하기.

my-deployment.yml

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      name: busybox
  template:
    metadata:
      labels:
        name: busybox
    spec:
      containers:
      - name: busybox-container
        image: busybox

Deployment 매니페스트 실행하기.

kubectl create -f my-deployment.yaml 
deployment.apps/deployment-1 created

Commandline 으로 Deployment 생성하기.

kubectl create deployment httpd-frontend --replicas=3 --image=httpd:2.4-alpine --dry-run=client -o yaml > my-deployment2.yaml
cat my-deployment2.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: httpd-frontend
  name: httpd-frontend
spec:
  replicas: 3
  selector:
    matchLabels:
      app: httpd-frontend
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: httpd-frontend
    spec:
      containers:
      - image: httpd:2.4-alpine
        name: httpd
        resources: {}
status: {}

기본적인 커맨드 (명령적 방법)

안정적인 서비스 운영을 위해서는 명령적 방법은 가능하면 사용하지 않고, yml 파일을 통한 선언적 방법으로 이용하기.

아래 내용은 참고차~.

POD Object 생성.

kubectl run --image=nginx nginx

디플로이 생성

kubectl create deployment --image=nginx nginx

Service 생성.

kubectl expose deployment nginx --port 80

Deployment 수정

kubectl edit deployment nginx

Scaling

kubectl scale deployment nginx --replicas=5

이미지 갱신

kubectl set image deployment nginx nginx=nginx:1.18

'Kubernetes' 카테고리의 다른 글

[Kubernetes] Pod 실습하기  (0) 2022.04.11
[Kubernetes] ReplicaSet 실습  (0) 2022.04.11
[Kubernetes] Kubernetes Service 실습  (0) 2022.04.11
[Kubernetes] 명령적/선언적 방법 실습  (0) 2022.04.11
[Kubernetes] Taint and Toleration  (0) 2022.04.11
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함