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

김효진·2022년 6월 9일
0

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개의 댓글