You are viewing an old version of this page. View the current version.
        
        
            Compare with Current
                        View Page History
        
        
                            « Previous
            
            
                                     Version 20
                            
                            Next »
            
        
     
            
                                            
        
                           
        개요
- Kubernetes Manifist 파일을 작성하고, 어플리케이션을 배포해 볼 것입니다.
사전조건
배포할 환경 미리보기
Kubernetes 배포 파일 작성
- 
- apiVersion: apps/v1
kind: Deployment
metadata:
  name: spring-demo
spec:
  selector:
    matchLabels:
      app: spring-demo
  replicas: 3
  template:
    metadata:
      labels:
        app: spring-demo
    spec:
      containers:
      - name: spring-demo
        image: sooabia/spring-demo:1.0
        ports:
        - containerPort: 8080
---
kind: Service
apiVersion: v1
metadata:
  name: spring-service
spec:
  selector:
    app: spring-demo
  ports:
  - protocol: TCP
    port: 80
    targetPort: 8080
  type: LoadBalancer
---
  apiVersion: apps/v1
  kind: StatefulSet
  metadata:
    name: redis
  spec:
    selector:
      matchLabels:
        app: redis
    replicas: 1
    template:
      metadata:
        labels:
          app: redis
      spec:
        containers:
        - name: redis
          image: redis
          ports:
          - containerPort: 6379
          volumeMounts:
          - name: data
            mountPath: ./redis
    volumeClaimTemplates:
    - metadata:
        name: data
      spec:
        accessModes: [ "ReadWriteOnce" ]
        resources:
          requests:
           storage: 1Gi
--- 
kind: Service
apiVersion: v1
metadata:
  name: redis
spec:
  selector:
    app: redis
  ports:
  - protocol: TCP
    port: 6379
    targetPort: 6379
  type: ClusterIP
 
배포
- 
- C:\Users\sanse\workspace\reactive-link-shortener-sample-app>kubectl apply -f k8s-deploy.yml
deployment.apps/spring-demo created
service/spring-service created
statefulset.apps/redis created
service/redis created
C:\Users\sanse\workspace\reactive-link-shortener-sample-app>kubectl get pod
NAME                           READY   STATUS    RESTARTS   AGE
redis-0                        1/1     Running   0          26s
spring-demo-86db8bb845-6h4g8   1/1     Running   0          26s
spring-demo-86db8bb845-qhmj4   1/1     Running   0          26s
spring-demo-86db8bb845-x79cl   1/1     Running   0          26s
C:\Users\sanse\workspace\reactive-link-shortener-sample-app>kubectl get svc
NAME             TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
kubernetes       ClusterIP      10.96.0.1        <none>        443/TCP        31d
redis            ClusterIP      10.103.235.238   <none>        6379/TCP       41s
spring-service   LoadBalancer   10.110.19.153    localhost     80:31834/TCP   41s 
 
서비스 확인
- 
- C:\Users\sanse\workspace\reactive-link-shortener-sample-app>curl -XPOST http://localhost/link -H "Content-Type: application/json" -d "{\"link\":\"http://wiki.iisanse.com\"}"
{"shortenedLink":"zMlnfI"}