반응형
    
    
    
  kubernetes 웹 서버(nginx) 배포
도커 이미지 확인
$ docker search nginx
NAME                               DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
nginx                              Official build of Nginx.                        13956               [OK]
쿠버네티스 네임스페이스 생성
###네임스페이스 생성
$ kubectl create namespace nginx-namespace
namespace/nginx-namespace created
###네임스페이지 확인
$ kubectl get namespace | grep nginx-namespace
nginx-namespace        Active   62s
쿠버네티스 웹 서버(nginx) 배포
###디플로이먼트 생성
$ kubectl create deployment nginx --image=nginx -n nginx-namespace
deployment.apps/nginx created
###파드 및 디플로이먼트 확인
$ kubectl get pod,service,deployment -o wide -n nginx-namespace
NAME                         READY   STATUS    RESTARTS   AGE   IP           NODE     NOMINATED NODE   READINESS GATES
pod/nginx-6799fc88d8-hfqkl   1/1     Running   0          39s   10.244.2.9   bk8sn2   <none>           <none>
NAME                    READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS   IMAGES   SELECTOR
deployment.apps/nginx   1/1     1            1           39s   nginx        nginx    app=nginx
쿠버네티스 서비스 생성
###서비스 생성
$ kubectl create service nodeport nginx --tcp=80:80 -n nginx-namespace
service/nginx created
###서비스 확인
$ kubectl get pod,service,deployment -o wide -n nginx-namespace
NAME                         READY   STATUS    RESTARTS   AGE     IP           NODE     NOMINATED NODE   READINESS GATES
pod/nginx-6799fc88d8-hfqkl   1/1     Running   0          2m13s   10.244.2.9   bk8sn2   <none>           <none>
NAME            TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE   SELECTOR
service/nginx   NodePort   10.99.250.28   <none>        80:30996/TCP   24s   app=nginx
NAME                    READY   UP-TO-DATE   AVAILABLE   AGE     CONTAINERS   IMAGES   SELECTOR
deployment.apps/nginx   1/1     1            1           2m13s   nginx        nginx    app=nginx
웹(nginx) 서비스 확인
###NodePort 접속
$ curl -I 10.255.255.99:30996
HTTP/1.1 200 OK
Server: nginx/1.19.3
Date: Thu, 05 Nov 2020 04:56:41 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 29 Sep 2020 14:12:31 GMT
Connection: keep-alive
ETag: "5f7340cf-264"
Accept-Ranges: bytes
###CLUSTER-IP 접속
$ curl -I 10.99.250.28
HTTP/1.1 200 OK
Server: nginx/1.19.3
Date: Thu, 05 Nov 2020 04:57:18 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 29 Sep 2020 14:12:31 GMT
Connection: keep-alive
ETag: "5f7340cf-264"
Accept-Ranges: bytes
편집
$ kubectl edit deployments nginx -n nginx-namespace
# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"
  creationTimestamp: "2020-11-05T04:53:05Z"
  generation: 1
  labels:
    app: nginx
  name: nginx
  namespace: nginx-namespace
  resourceVersion: "552799"
  selfLink: /apis/apps/v1/namespaces/nginx-namespace/deployments/nginx
  uid: ec964687-4f69-46ea-b921-b79cbeed370d
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: nginx
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: nginx
    spec:
      containers:
      - image: nginx
        imagePullPolicy: Always
        name: nginx
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
status:
  availableReplicas: 1
  conditions:
  - lastTransitionTime: "2020-11-05T04:53:10Z"
    lastUpdateTime: "2020-11-05T04:53:10Z"
    message: Deployment has minimum availability.
    reason: MinimumReplicasAvailable
    status: "True"
    type: Available
  - lastTransitionTime: "2020-11-05T04:53:05Z"
    lastUpdateTime: "2020-11-05T04:53:10Z"
    message: ReplicaSet "nginx-6799fc88d8" has successfully progressed.
    reason: NewReplicaSetAvailable
    status: "True"
    type: Progressing
  observedGeneration: 1
  readyReplicas: 1
  replicas: 1
  updatedReplicas: 1
서비스 삭제
$ kubectl delete service dnginx -n nginx-namespace
service "dnginx" deleted
$ kubectl get service -o wide -n nginx-namespace
No resources found in nginx-namespace namespace.
디폴로이먼트 삭제
###deployment 삭제
$ kubectl delete deployment nginx -n nginx-namespace
deployment.apps "nginx" deleted
###deployment 확인
$ kubectl get deployment -o wide -n nginx-namespace
No resources found in nginx-namespace namespace.
###pod 확인
$ kubectl get pod -o wide -n nginx-namespace
No resources found in nginx-namespace namespace.
###pod,service,deployment 확인
$ kubectl get pod,service,deployment -o wide -n nginx-namespace
No resources found in nginx-namespace namespace.
네임스페이스 삭제
$ kubectl delete namespace <네임스페이스명>
$ kubectl delete namespace nginx-namespace
namespace "nginx-namespace" deleted
728x90
    
    
  반응형
    
    
    
  '리눅스' 카테고리의 다른 글
| 쿠버네티스에서 NGINX Ingress Controller를 설정하는 방법 (0) | 2020.11.09 | 
|---|---|
| Kubernetes Dashboard를 설치하고 구성하는 방법 (0) | 2020.11.06 | 
| [kubernetes] kubectl get (0) | 2020.11.05 | 
| kubernetes 클러스터 내 모든 네임스페이스의 파드 상태 확인 (0) | 2020.11.04 | 
| [kubernetes] Jenkins 설치 방법 (0) | 2020.11.03 | 
 
                  
                 
                  
                 
                  
                