본 핸즈온 문서는 마이크로 서비스 애플리케이션에 대한 빌드/테스트/배포 자동화를 위한 CI/CD 파이프라인을 구성하고, 이를 관리형 쿠버네티스 서비스에 배포하는 전반적인 과정을 다루고 있습니다. 본 워크샵을 통해서 오라클의 컨테이너 기반 CI/CD 서비스인 Wercker(워커)와 오라클의 컨테이너 서비스인 Oracle Kubernetes Engine (OKE) 및 Oracle Container Registry Service에 대한 경험을 해볼 수 있습니다.
- DevOps 이해
- Oracle Kubernetes Cluster 환경 구성
- Wercker 환경 구성, 파이프라인 이해 및 빌드, 실행
- Kubernetes Container 배포, 운영
- 인터넷 접속 가능한 랩탑 (Windows 10이상, Windows 10 이하 버전일 경우 Powershell 필요)
- GitHub 계정
- OCI (Oracle Cloud Infrastructure) 계정
- STEP 1: Setup
- STEP 2: OCI에서 Kubernetes Cluster 생성하기
- STEP 3: kubectl과 oci-cli 설치하기
- STEP 4: GitHub Repository 생성하기
- STEP 5: Wercker 환경 구성하기
- STEP 6: Wercker CI/CD Pipeline 구성하기
- STEP 7: Wercker 파이프라인 실행하기
- STEP 8: Oracle Container Registry (OCIR) 확인 및 Oracle Kubernetes Engine (OKE) 에 생성(배포)된 Pod와 Service 확인하기
- STEP 9: Oracle Kubernetes Engine (OKE) 에 생성(배포)된 Pod와 Service 확인하기
- STEP 10: 서비스 확인하기
- GitHub 계정 생성
- Wercker 계정 생성
-
https://github.com 에 접속해서 우측 상단 Sign up을 클릭합니다.
-
다음 내용을 입력하고 Create an account 클릭해서 계정 생성합니다. 검증 메일이 발송되기 때문에 정확한 이메일을 입력해야 합니다. GitHub으로 부터 수신받은 이메일에서 Verify email address를 클릭해서 계정 생성을 완료합니다.
-
생성한 계정으로 Sign in 합니다.
-
https://app.wercker.com 에 접속합니다.
참고) 브라우저에서 GitHub에 이미 로그인 되어 있다면 아래 로그인 화면이 아닌 Authorize wercker 화면을 볼 수 있습니다.
-
GitHub 아이디와 패스워드를 입력하고 Sign in 버튼을 클릭합니다.
-
Authorize wercker 버튼을 클릭합니다.
-
Wercker에서 사용할 이름과 이메일을 입력합니다. GitHub과 동일하게 입력해 줍니다.
-
아래 URL을 통해서 Seoul Region으로 접속합니다.
참고) tenancy 명은 처음 Oracle Cloud Subscription 시에 지정합니다.
참고) 두 가지 로그인 타입이 있습니다. OCI 전용 계정이 있으며, IDCS라는 계정 관리를 위한 클라우드 서비스와 연동 (Single Sign On)해서 사용하는 계정이 있습니다.
-
좌측 메뉴 중 Developer Services > Container Clusters (OKE) 선택합니다.
-
OKE Cluster를 생성 할 Compartment를 선택합니다. (skpadm > OCI_OKE_class_190820)
참고) Compartment는 OCI에서 관리하는 리소스들을 그룹으로 묶어서 관리하기 위해 제공되는 기능입니다. 일반적으로 팀 단위로 리소스(Compute, Network, Storage등)를 관리하기 위한 목적으로 사용됩니다. Compartment 이름은 아래 스크린샷과 다를 수 있습니다.
-
OKE Cluster 생성을 위해 Create Cluster 버튼을 클릭 합니다.
-
다음과 같이 입력합니다. Virtual Machine Gen2, 1 OCPU에 생성된 네트워크 서브넷당 한개의 쿠버네티스 노드를 생성합니다.
참고) Compute Shape의 의미는 다음과 같습니다. VM.Standard2.2은 Virtual Machine Gen2, 2 OCPU를 의미합니다.
- NAME: oke-cluster-{번호} (예. oke-cluster-dhk-1)
- KUBERNETES VERSION: v1.13.5
- QUICK CREATE: CHECK
- SHAPE: VM.Standard2.2
- QUANTITY PER SUBNET: 1
-
정상적으로 완료되면 노드의 상태가 ACTIVE 상태가 됩니다. (대략 5~10분 소요)
-
Oracle Kubernetes Engine과 Oracle Cloud Infrastructure 관리, 컨트롤하기 위한 CLI (Command Line Tool)인 kubectl과 oci-cli 설치를 합니다. kubectl은 curl을 통해서 다운로드 받을 수 있지만, 아래 링크를 통해서도 다운로드 받을 수 있습니다.
-
kubectl 설치
공식 설치 가이드는 다음 페이지를 참고합니다.
https://kubernetes.io/docs/tasks/tools/install-kubectl/-
Windows
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.15.0/bin/windows/amd64/kubectl.exe
-
macOS (homebrew)
brew install kubernetes-cli
-
macOS (curl)
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl
-
설치 버전 확인
kubectl version
-
-
클라이언트에서 OKE 접속을 위한 kubeconfig 파일을 만드는 과정입니다. kubeconfig 파일 생성하는 과정은 OCI의 OKE Cluster 화면에서 Access Kubeconfig 버튼을 클릭하면 확인할 수 있습니다.
!!! 위 내용은 oci-cli 설치 후 실행할 내용이므로 메모합니다.
-
kubeconfig 파일 생성을 위해서 우선 oci-cli 설치를 진행합니다. Windows 사용자는 Windows 좌측 하단의 검색 버튼을 클릭하고 PowerShell을 입력한 후 Windows PowerShell을 관리자 모드(중요)로 실행합니다.
-
Windows PowerShell 또는 macOS Terminal에서 다음과 같이 실행하여 oci-cli를 설치합니다.
oci-cli 설치를 위해 Python이 자동으로 설치됩니다.
공식 설치 가이드는 다음 페이지를 참고합니다.
https://docs.cloud.oracle.com/iaas/Content/API/SDKDocs/cliinstall.htm-
Windows
# Set-ExecutionPolicy RemoteSigned # powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.ps1'))"
-
macOS
# bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"
-
-
설치 진행과정에서 oci-cli 설치 경로를 지정해 줍니다. 기본 경로는 $HOME(/Users/사용자명) 입니다. 기본 경로에 설치합니다.
!!Windows의 경우 사용자명에 한글 혹은 공백이 포함되어 있을 경우 Python을 설치하면서 오류가 발생합니다. 이 경우 영문으로만 구성된 다른 사용자로 진행합니다.
1. $HOME/oci-cli 2. $HOME/bin 3. $HOME/bin/oci-cli-scripts 4. 추가 패키지 설치 여부 (설치 없이 엔터 치고 넘어갑니다)
-
설치가 완료되면 oci-cli 설치를 확인합니다.
# oci -v
-
이제 oci-cli 툴을 사용해서 OCI 접속을 위한 환경 구성파일을 생성합니다. 필요한 정보는 다음과 같습니다.
-
위에서 얻은 정보를 사용해서 oci-cli 설정을 진행합니다. Windows Powershell(관리자 모드) 혹은 macOS Terminal 에서 다음과 같이 입력합니다.
# oci setup config
- Enter a location for your config
- Enter (그냥 Enter 치면 $HOME/.oci 폴더가 기본 폴더로 설정됩니다)
- Enter a user OCID
- 자신의 User OCID
- Enter a tenancy OCID
- Tenancy OCID
- Enter a region
- us-ashburn-1
- Do you want to generate a new RSA key pair? (SSH Key Pair가 생성됨, 다음 단계에서 OCI에 Public 키를 등록해줌)
- y
- Enter the location of your private key file:
- $HOME/.oci/oci_api_key.pem
- Enter a location for your config
-
$HOME/.oci 폴더와 그 안에 config 파일, SSH Key Pair(.pem)가 생성됩니다. oci-cli가 OCI에 접속할 수 있도록 생성된 공개키(oci_api_key_public.pem)를 OCI에 등록합니다.
아래와 같이 우측 상단의 사용자 아이콘 클릭 후 사용자 아이디를 클릭 합니다. -
좌측 API Keys 메뉴 선택 후 Add Public Key 버튼 클릭합니다. PUBLIC KEY 영역에 위에서 생성한 키 중에서 oci_api_key_public.pem 파일의 내용을 복사해서 붙여넣기 한 후 Add 버튼을 클릭합니다.
-
oci-cli 설정이 완료되었습니다. 다음은 kubeconfig를 생성합니다. 먼저 Windows PowerShell 혹은 macOS Terminal을 통해서 다음과 같이 실행해서 oracle 폴더 하위에 .kube 폴더를 생성합니다.
# cd $HOME # mkdir .kube
-
앞에서 생성한 OKE Cluster의 kubeconfig 생성 명령어를 실행합니다. 다음과 같은 형태로 아래는 예시입니다.
# oci ce cluster create-kubeconfig --cluster-id ocid1.cluster.oc1.ap-seoul-1.aaaaaaaaae2dey3fha3diylfgrtgknrugbtdgnjwha2tizddhctdeobrhe4d --file $HOME/.kube/config --region ap-seoul-1
-
생성된 kubeconfig 파일을 확인합니다.
# cd $HOME\.kube # type config
참고) OCI에 구성된 OKE(Kubernetes Engine)를 관리하고 배포하기 위해서 Kubernetes Master Server와 접속을 위한 Auth Token이 필요한데, 이 정보가 kubeconfig 파일에 존재합니다. oci-cli을 통해서 OKE에 대한 kubeconfig 파일을 생성하는 과정이었으며, OKE를 CLI를 통해 관리, 제어를 위해서 kubectl을 사용합니다.
-
https://github.com 에 접속 후 우측 상단의 Sign in 클릭 하여 로그인합니다. 좌측 Create a repository를 클릭 합니다.
-
Repository name을 다음과 같이 입력하고 Create repository를 클릭 합니다.
- Repository name
- cloud-native-devops-workshop-wercker-oke
- Repository name
-
Import code를 클릭합니다.
보통은 비어있는 Repository로 생성하지만, 여기서는 실습을 위해 제공된 Repository의 소스를 가져오기 위해 Import하여 생성합니다.
-
가져올 GitHub Repository URL을 다음과 같이 입력합니다.
- Your old repository’s clone URL
-
참고) 2개의 마이크로 서비스(Microprofile, Spring-Boot)와 1개의 UI, wercker와 kubernetes 배포를 위한 환경 설정이 포함되어 있습니다.
-
https://app.wercker.com 에 접속 후 LOG IN WITH GITHUB 클릭 후 생성한 계정을 통해 로그인해서 Create your first application 을 클릭합니다.
참고) Wercker Application은 하나의 Git Repository와 연결되는 파이프라인을 구성하기 위한 단위입니다.
-
Select SCM에서 GitHub을 선택합니다.
-
앞에서 생성한 GitHub Repository가 보입니다. 선택 후 Next 버튼을 클릭 합니다.
-
Git Repository 접속에 필요한 SSH key 설정을 합니다. 실습에서는 SSH key 없이 진행합니다. Next 버튼을 클릭 합니다.
-
Create버튼을 클릭해서 Wercker Application을 생성합니다.
-
Wercker Application에서 Oracle Container Registry 에 컨테이너 이미지를 푸시하기 위한 설정을 합니다. 상단 탭 메뉴중에서 Environment를 선택합니다.
여기서 필요한 Key와 Value는 다음과 같습니다.
- OCI_AUTH_TOKEN
- DOCKER_REGISTRY
- DOCKER_USERNAME
- DOCKER_REPO
- KUBERNETES_MASTER
- KUBERNETES_AUTH_TOKEN
- KUBERNETES_NAMESPACE
여기서 KUBERNETES_MASTER와 KUBERNETES_AUTH_TOKEN은 $HOME/.kube/config (kubeconfig) 파일의 내용을 참조해서 설정합니다.
-
OCI_AUTH_TOKEN
DESCRIPTION에 임의로 Wercker Token이라고 입력한 후 Generate Token 버튼을 클릭합니다.
생성된 토큰을 복사한 후 Wercker에 다음과 같이 입력하고 Add 버튼을 클릭합니다.
Key: OCI_AUTH_TOKEN
Value: 토큰 값 (예. 8K2}JTG96[d82{XXVWRq) -
DOCKER_REGISTRY
- 여기서는 애슈번(Ashburn) 리전에 있는 Registry를 사용하도록 하겠습니다.
Key: DOCKER_REGISTRY
Value: iad.ocir.ioContainer Registry는 각 리전별로 존재합니다. Registry는 리전키 + ocir.io로 구성되는데, 리전키의 경우는 현재 icn(서울), nrt(도쿄), yyz(토론토), fra(프랑크푸르트), lhr(런던), iad(애쉬번), phx(피닉스)입니다.
-
DOCKER_USERNAME
- Docker Username은 OCI 사용자 아이디입니다. OCI Console 우측 상단의 사람 아이콘을 클릭해서 확인할 수 있습니다. 여기에 Tenancy명이 필요합니다. 아래 Value는 예시이며, 보통 다음과 같이 구성됩니다.
Key: DOCKER_USERNAME
Value: skpadm/oracleidentitycloudservice/[email protected] -
DOCKER_REPO
- Docker Repository이름으로 {Tenancy의 Object Storage Namespace} + {레파지토리명}입니다. 다음과 같이 레파지토리 이름을 지정합니다. Tenancy의 Object Storage는 Tenancy 정보 페이지 하단에서 확인할 수 있습니다.
!!! Repository는 Tenancy에서 공통으로 사용하기 때문에 각자 레파지토리 이름이 달라야 하므로, 영문 이니셜을 뒤에 붙입니다.
Key: DOCKER_REPO
Value: id4xyblf8enf/oracle-oke-workshop-{자신의 영문 이니셜} -
KUBERNETES_MASTER는 $HOME/.kube/config 파일에서 얻을 수 있습니다. 해당 파일을 편집기등으로 오픈한 후 MASTER 서버 주소를 복사 후 입력합니다.
Key: KUBERNETES_MASTER
Value:: KUBERNETES SERVER MASTER URL (예. https://c3donjwgqzd.ap-seoul-1.clusters.oci.oraclecloud.com:6443) -
KUBERNETES_AUTH_TOKEN도 마찬가지로 .kube/config 파일에서 얻을 수 있습니다. 해당 파일을 편집기등으로 오픈한 후 AUTH TOKEN을 복사해서 입력합니다.
Key: KUBERNETES_AUTH_TOKEN
Value:: KUBERNETES AUTH TOKEN (예. LS0tLS1CRUdJTiBDRVJUSU................) -
KUBERNETES_NAMESPACE를 사용하는 이유는 동일한 서비스를 여러 사람이 동일한 노드에 배포하기 때문에 각 Pod와 Deployment, Service를 각 사용자별로 생성하기 위함입니다. Kubernetes Cluster에 Namespace를 지정하여 Pod, Service, Deployment, Secret을 분리합니다.
Key: KUBERNETES_NAMESPACE
Value:: 고유한 값 (예. dhkim9)
-
복제한 Git Repository (cloud-native-devops-workshop-wercker-oke)에 접속하면 처음에 생성 시 가져온 파일 중에서 다음 4개의 설정 파일을 확인할 수 있습니다.
4개의 설정 파일은 다음과 같습니다.
-
wercker.yml
- Wercker CI/CD의 Pipeline을 구성을 위한 설정 파일
-
kube-namespace-config.yaml.template
- Kubernetes에 Namespace를 생성합니다.
-
kube-helidon-movie-api-mp-config.yml.template
- helidon-movie-api-mp 서비스를 Kubernetes 환경에 배포하기 위한 설정 파일
-
kube-springboot-movie-people-api-config.yml.template
- springboot-movie-people-api 서비스를 Kubernetes 환경에 배포하기 위한 설정 파일
-
kube-jet-movie-msa-ui-config.yml.template
- 프론트엔드 UI (Nodejs 기반)를 Kubernetes 환경에 배포하기 위한 설정 파일
-
-
Git Repository에서 wercker.yml 파일을 클릭합니다. 다음과 같은 내용을 볼 수 있습니다. (내용이 길기 때문에 중요한 부분만 요약해서 설명합니다.)
# 도커 허브에서 아래 이미지를 가져와서 빌드를 위한 컨테이너 환경을 만듭니다. box: id: openjdk:8-jdk ports: - 8080 # build 파이프라인 입니다. 각 파이프라인 안에는 작업 단위인 step이 포함됩니다. 여기서는 maven을 설치하고, 두개의 서비스를 빌드 및 JUnit 테스트를 거쳐 jar 파일을 만듭니다. build: steps: - script: - install-packages: packages: maven ... # push-release 파이프라인 입니다. 두 개의 서비스를 컨테이너 이미지화 하여 Oracle Container Registry에 Push를 합니다. push-release-1: steps: - internal/microprofile-docker-push: .... helidon(microprofile) 서비스 컨테이너 이미지 생성, 이미지 푸시 push-release-2: steps: - internal/springboot-docker-push: .... spring-boot 서비스 컨테이너 이미지 생성, 이미지 푸시 push-release-3: steps: - script: .... - internal/docker-build: .... 2개의 서비스를 사용하는 프론트엔드 애플리케이션 컨테이너 이미지 생성, 이미지 푸시 - internal/docker-push: .... 이미지 푸시 # deploy-to-cluster 파이프라인 입니다. 두 개의 서비스에 대한 Pod를 Kubernetes 노드에 생성하고 서비스로 노출합니다. deploy-to-cluster: box: id: alpine cmd: /bin/sh steps: - bash-template - kubectl: name: create namespace ... Kubernetes에 Namespace를 생성합니다. - kubectl: name: delete secret ... Wercker에서 Docker Registry 접속을 위한 Secret이 존재할 경우 삭제 - kubectl: name: create secret ... Wercker에서 Docker Registry 접속을 위한 Secret을 다시 생성 - script: name: "Visualise Kubernetes config" code: cat kube-helidon-movie-api-mp-config.yml - kubectl: name: deploy helidon-movie-api-mp to kubernetes ... helidon-movie-api-mp 서비스 Pod 생성 - script: name: "Visualise Kubernetes config" code: cat kube-springboot-movie-people-api-config.yml - kubectl: name: deploy springboot-movie-people-api to kubernetes ... springboot-movie-people-api 서비스 Pod 생성 - script: name: "Visualise Kubernetes config" code: cat kube-jet-movie-msa-ui-config.yml - kubectl: name: deploy jet-movie-msa-ui to kubernetes ... jet-movie-msa-ui 서비스 Pod 생성
-
위 wercker.yml에는 다음과 같이 5개의 파이프라인을 임의로 정의했습니다.
- build
- 프로젝트를 빌드/테스트/패키징(jar) 합니다.
- push-release-1
- Helidon (Microprofile) 프로젝트를 컨테이너 이미지화 하여 Container Registry에 푸시합니다.
- push-release-2
- Spring Boot 프로젝트를 컨테이너 이미지화 하여 Container Registry에 푸시합니다.
- push-release-3
- 프론트엔드 UI 프로젝트를 컨테이너 이미지화 하여 Container Registry에 푸시합니다.
- deploy-to-cluster
- 컨테이너 이미지를 가져와서(pull) 쿠버네티스 노드에 Pod를 생성하고 서비스를 시작합니다.
- build
-
wercker.yml 파일에 정의한 파이프라인을 Wercker에 등록하고 Workflow를 구성하는 단계입니다. 먼저 Wercker (https://app.wercker.com)에 접속한 후 Workflows탭을 선택합니다. 중간에 보면 build 파이프라인은 디폴트로 만들어져 있습니다. 아래 Add new Pipeline 버튼을 클릭합니다.
-
build는 이미 생성되어 있기 때문에(Default) 두 번째 파이프라인인 push-release-1을 입력하고 Create버튼을 클릭합니다.
-
다시 상단 Workflows탭을 클릭 합니다. 동일하게 세 번째 파이프라인인 push-release-2를 입력하고 Create버튼을 클릭합니다.
-
동일하게 네 번째 파이프라인인 push-release-3를 입력하고 Create버튼을 클릭합니다.
-
동일하게 다섯 번째 파이프라인인 deploy-to-cluster를 입력하고 Create버튼을 클릭합니다.
-
다시 상단 Workflows탭을 클릭한 후 Workflow 구성을 위해 build 파이프라인 옆 + 아이콘을 클릭 합니다.
-
맨 아래 pipeline을 push-release-1 선택 후 Add버튼을 클릭 합니다.
-
push-release-1 파이프라인 옆 + 아이콘을 클릭 합니다.
-
push-release-2 선택 후 Add버튼을 클릭 합니다.
-
push-release-2 파이프라인 옆 + 아이콘을 클릭 합니다.
-
push-release-3 선택 후 Add버튼을 클릭 합니다.
-
push-release-3 파이프라인 옆 + 아이콘을 클릭 합니다.
-
deploy-to-cluster 선택 후 Add버튼을 클릭 합니다.
-
상단 Runs탭을 선택합니다. 아래 trigger a build now. 링크를 클릭합니다. 최초 파이프라인 실행할 경우만 이 버튼으로 실행하며, 이후부터는 GitHub의 변경사항이 발생할 경우 자동으로 빌드 파이프라인이 실행됩니다.
-
모든 파이프라인 (빌드/테스트/패키징 --> 이미지 생성 및 레지스트리 등록 --> 쿠버네티스 파드 컨테이너 생성)이 오류 없이 정상적으로 완료되었습니다.
STEP 8: Oracle Container Registry (OCIR) 확인 및 Oracle Kubernetes Engine (OKE) 에 생성(배포)된 Pod와 Service 확인하기
-
OCI에 접속 (https://console.us-ashburn-1.oraclecloud.com?tenant=skpadm) 후 좌측 Developer Services > Registry (OCIR) 클릭 합니다.
-
OCIR에 이미지가 등록되었습니다. 현재 Helidon(Microprofile)과 Spring Boot 서비스, 프론트엔드 UI 애플리케이션 이미지가 등록된 것을 확인할 수 있습니다.
-
Oracle Kubernetes Engine (OKE) 에 생성(배포)된 Pod와 Service 확인을 위해 Windows PowerShell 혹은 macOS Terminal을 열고 다음과 같이 명령어를 실행합니다. KUBERNETES_NAMESPACE 부분은 위에서 사용한 이름을 사용합니다.
# kubectl get all -n ${KUBERNETES_NAMESPACE}
-
다음과 같이 Running상태의 세 개의 서비스와 서비스의 External IP를 확인할 수 있습니다.
!!! helidon-movie-api-mp와 springboot-movie-people-api의 External IP를 확인하고 메모합니다. 다음 단계에서 UI 프론트엔드에 적용할 것입니다.
-
처음에 생성한 GitHub Repository에 가서 jet-movie-msa-ui > src > js > endpoints.json 클릭한 후 우측 연필 모양 아이콘을 클릭 합니다.
-
다음과 같이 movies는 helidon-movie-api-mp 의 서비스 External IP, moviepeople은 springboot-movie-people-api 의 External IP로 변경한 후 맨 아래 Commit 버튼을 클릭합니다.
-
Wercker 파이프라인을 통해 빌드, 테스트, 컨테이너 이미지 생성, 레지스트리 전송, 쿠버네티스 Pod 생성 및 서비스 배포가 모두 완료되었습니다.
-
브라우저를 열고 다음과 같이 확인한 jet-movie-msa-ui(프론트앤드 UI) 서비스의 External IP로 접속합니다. 아래 IP는 예시입니다.
- Movie Web Page
http://132.145.86.1
- Movie Web Page
-
Kubernetes Dashboard
# kubectl proxy
다음 주소로 접속합니다.
http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login
첫 화면에서 kubeconfig 파일을 선택 후 로그인합니다. ($HOME/.kube/config)
-
클러스터 정보
# kubectl cluster-info
-
노드 정보
# kubectl get nodes
-
모든 리소스 출력
# kubectl get all -A
-
특정 네임스페이스의 리소스 출력
# kubectl get all -n 네임스페이스명(dhkim9)
-
특정 Pod의 상세 정보 (네임스페이스를 지정한 경우 -n 옵션 사용)
# kubectl describe Pod명 -n 네임스페이스명(dhkim9)
-
특정 Pod 내부 접속 (네임스페이스를 지정한 경우 -n 옵션 사용)
# kubectl exec -it Pod명 -n 네임스페이스명(dhkim9) -- /bin/bash
-
해당 네임스페이스를 갖는 모든 리소스 삭제
# kubectl delete namespace 네임스페이스명(dhkim9)
-
특정 label 이름이 정의된 pod, service들 제거
# kubectl delete pods,services -l name=label이름
-
Pod의 로그 조회 (네임스페이스를 지정한 경우 -n 옵션 사용, -f 옵션은 tail)
# kubectl logs -f Pod명 -n 네임스페이스명(dhkim9)
-
Pod 스케일링 (네임스페이스를 지정한 경우 -n 옵션 사용)
# kubectl scale Replica Set명 -n 네임스페이스명(dhkim9) --replicas=5