쿠버 설정 파일
쿠버 설정 파일은 쿠버네티스 클러스터에 대한 접근정보가 담겨있는 파일이다.
kubectl 명령어를 사용해서 쿠버네티스의 정보를 조회할 때 사용자 홈 디렉터리 하위의 .kube 디렉터리에 있는 config 파일을 기본적으로 이용한다. 이 파일을 가지고 있으면 파일에 정의된 구너한을 가지고 쿠버네티스 클러스터에 접근 할 수 있다. 쿠버 설정 파일은 쿠버 API 서버 접속 정보 이외에 연결에 필요한 모든 인증 정보를 가지고 있다.
kubectl config view
쿠버 설정 파일을 살펴 볼 수 있다.- 쿠버네티스용 지속적 배포 플러그인은 쿠버설정 파일을 관리할 수 있게 자격증명 정보를 따로 관리한다.
- 젠킨스 관리 > Manage Credentails 메뉴 에서 쿠버네티스용 지속적 배포 르러그인이 사용할 새로운 자격증명 정보를 추가하기 위해 (global) 버튼을 누른다.
- 쿠버설정 파일에 대한 자격 증명을 가져오려면 현재 쿠버설정 파일이 있는 마스터 노드에 접속권한이 있어야한다.
- Add Credentails를 눌러 마스터 노드에 대한 자격증명을 설정한다.
- 쿠버 설정 파일에 대한 자격증명 도 추가한다.
- kind
- 쿠버네티스용 지속적 배포 플러그인이 사용할 쿠버설정 파일을 등록하기 위해 Kubernetes configuration (kubeconfing)
- kubeconfig
- 쿠버설정 파일을 가져오는 방법을 설정 가능
- Pipeline으로 Item 새로 생성
- Build Triggers 에서 Poll SCM 서렂ㅇ
- /10 * * * 크론 표현식으로 10분마다 변화가 있는 지 체크
Jenkins CI 통합 앱 추가
stages {
stage('deploy start') {
steps { #배포 작업 이전에 배포시작 알림 메시지를 슬랙 채널로 보냄
slackSend(message: "Deploy ${env.BUILD_NUMBER} Started"
, color: 'good', tokenCredentialId: 'slack-key')
}
}
stage('deploy end') {
steps { #배포 작업 이후에 배포 완료 알림 메시지를 슬랙 채널로 보냄
slakSend(message: """${env.JOB_NAME} #${env.BUILD_NUMBER} End
""", color: 'good', tokenCredentialId: 'slack-key')
}
stage('send diff') {
steps {
script { #이전 배포와 현재 배포의 코드 변동사항을 html로 만듬
def publisher = LastChanges.getLastChangesPublisher "PREVIOUS_REVISION",
"SIDE", "LINE", true, true, "", "", "", "", ""
publisher.publishLastChanges()
def htmlDiff = publisher.getHtmlDiff()
writeFile file: "deploy-diff-${env.BUILD_NUMBER}.html", text: htmlDiff
} # 변경사항을 한누에 확인할 수 있는 주소를 메시지로 전달
slackSend(message: """${env.JOB_NAME} ${env.BUILD_NUMBER} End
(<${env.BUILD_URL}/last-changes|Check Last change>)"""
, color: 'good', tokenCredentialId: 'slack-key')
}