Jenkins를 이용한 Kubernetes Deployment와 Service 배포를 위한 Ansible Playbook 준비

김효진·2022년 6월 9일

1. Kubernetes Cluster에 Deployment와 Service(NodePort) 배포를 위한 Ansible Playbook 파일 작성

Depoloyment와 Service 배포를 위한 yaml파일

환경변수를 사용하기 위해 Ansible Kubernetes Module 사용.
playbook/kube_deploy.yaml

- hosts: ansible_host
  gather_facts: no

  tasks:
    #- command: kubectl apply -f java-hello-world/kube_manifest/
    - name: Create Deployment
      k8s:
        state: present
        definition:
          apiVersion: apps/v1
          kind: Deployment
          metadata:
            name: java-hello
            namespace: default
          spec:
            replicas: 3
            selector:
              matchLabels:
                app: java-hello
            template:
              metadata:
                labels:
                  app: java-hello
              spec:
                containers:
                  - name: java-hello
                    image: "도커허브 Repository 주소:{{ lookup('env', 'BUILD_NUMBER') }}"
                    imagePullPolicy: Always
                    ports:
                      - containerPort: 8080 
    - name: Create Service
      k8s:
        state: present
        definition:
          apiVersion: v1
          kind: Service
          metadata:
            name: java-hello-svc
            namespace: default
          spec:
            type: NodePort
            selector:
              app: java-hello
            ports:
              - port: 80
                targetPort: 8080
                nodePort: 31313

0개의 댓글