1. 개요
쿠버네티스 클러스터로 배포하기 위한 Jenkins 플러그인을 소개한다.
참고로 Jenkins는 빌드, 테스트, 배포 파이프라인을 관리할 수 있는 오픈 소스 자동화 서버이다.
2. 기능
- 마스터 노드로부터 SSH를 통해 클러스터 Crdential을 가져온다.
- 개인(Private) 도커 레지스트리를 위한 로그인 Credential을 관리한다.
- Jenkins 슬레이브 노드에 kubectl을 설치할 필요는 없다.
3. 설정
- Add build step 드랍다운에서 Deploy to Kubernetes 선택
-
Kubeconfig 드랍다운에서 저장된 kubeconfig 선택, 혹은 Add 눌러서 새로운 kubeconfig 생성 가능, Kind: Kubernetes configuration (kubeconfig)
- kubeconfig 내용을 직접 입력
- Jenkins 마스터에 있는 kubeconfig 경로 입력
- 리모트 SSH 서버에 있는 kubeconfig 내용 가져옴 - Config Files에 설정 파일 경로 채움
- Enable Variable Substitution in Config 체크
-
개인 도커 레지스트리에서 도커 이미지를 가져와야 한다면 Docker Container Registry / Kubernetes Secrets 클릭하고 설정
- Kubernetes Namespace for Secret : secrets가 생성될 namespace 이름으로 기본 값은 default
- Secret Name : 생성되거나 업데이트될 secret 이름으로 만약 이를 비워두면 유니크한 값이 생성됨, 이 이름은 KUBERNETES_SECRET_NAME이라는 환경변수 이름으로 노출되며 Enable Variable Substitution in Config 옵션을 켜면 참조 가능
- Docker Container Registry Credentials : 도커 허브를 사용한다면 Docker registry URL을 블랭크로 비워둘 수 있음
4. 지원 리소스 타입
- Deployment
- Replica Set
- Replication Controller
- Daemon Set
- Pod
- Job
- Service
- Ingress
- Secret