본문 바로가기
프로그램/SKT FLY AI

SKT FLY AI : 14일차 - Docker와 Kubernetes

by hsloth 2023. 7. 13.

오늘은 github actions를 이용해서 Docker images를 push하는 것을 배웠다.

Jenkins에서 Docker 사용


sudo gpasswd -a jenkins docker

sudo systemctl daemon-reload

sudo systemctl restart docker

sudo service jenkins restart
  • Jenkinsfile

    pipeline {
     agent any
     parameters {
        choice(name: 'VERSION', choices: ['1.1.0','1.2.0','1.3.0'], description: '')
        booleanParam(name: 'executeTests', defaultValue: true, description: '')
     }
     stages {
        stage("init") {
           steps {
              script {
                 gv = load "script.groovy"
              }
           }
        }
        stage("Checkout") {
           steps {
              checkout scm
           }
        }
        stage("Build") {
           steps {
              sh 'docker-compose build web'
           }
        }
        stage("test") {
           when {
              expression {
                 params.executeTests
              }
           }
           steps {
              script {
                 gv.testApp()
              }
           }
        }
        stage("deploy") {
           steps {
              sh "docker-compose up -d"
           }
        }
     }
    }

Kubernetes (K8s)


# minikube 설치
# 폴더 위치 주의하자.
curl -LO https://storage.googleapis.com/minikube/releases/v1.22.0/minikube-linux-amd64
# 최신 버전 다운 (curl -LO 써도 될듯)
wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64

sudo install minikube-linux-amd64 /usr/local/bin/minikube

# 실행권한 추가
sudo chmod 755 /usr/local/bin/minikube

# 설치 확인
minikube --help

# 버전 확인
minikube version


# kubectl - kube controller 설치
curl -LO https://dl.k8s.io/release/v1.22.1/bin/linux/amd64/kubectl

sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

# binary에 권한 추가
chmod +x /usr/local/bin/kubectl

# 설치 확인
kubectl --help

# 버전 확인
kubectl version -o json

# 실행
minikube start --driver=docker

#
kubectl get pod -n kube-system
# pod.yaml

apiVersion: v1
kind: Pod 
metadata:
  name: counter
spec:
  containers:
  - name: count 
    image: busybox 
    args: [/bin/sh, -c, 'i=0; while true; do echo "$i: $(date)"; i=$((i+1)); sleep 1; done'] 
kubectl apply -f pod.yaml

kubectl get pod counter

kubectl describe pod counter

# o는 output의 약자이다.
kubectl get pod -o wide # pod 목록을 보다 자세히 출력

kubectl get pod coutner -o yaml # 아마도 해당 pod의 yaml파일을 보여주는 명령어

kubectl get pod -w # kubectl get pod의 결과를 계속 보여준다.

'프로그램 > SKT FLY AI' 카테고리의 다른 글

SKT FLY AI : 16일차 - Cloud  (0) 2023.07.18
SKT FLY AI : 15일차 - K8s  (0) 2023.07.14
SKT FLY AI : 13일차 - Docker & Jenkins  (0) 2023.07.12
SKT FLY AI : 12일차 - Github Actions  (0) 2023.07.11
SKT FLY AI : 11일차  (0) 2023.07.11