TKE 클러스터 구성
클러스터 자격 증명 가져오기
1. 다음 Shell 스크립트를 사용하여 ServiceAccount 유형의 테스트 네임스페이스 ci 및 테스트 사용자 jenkins를 생성하고 아래와 같이 클러스터 액세스 자격 증명(token)을 가져옵니다.
kubectl create namespace ci
kubectl create sa jenkins -n ci
kubectl get secret $(kubectl get sa jenkins -n ci -o jsonpath={.secrets[0].name}) -n ci -o jsonpath={.data.token} | base64 --decode
2. 다음과 같이 ci 테스트 네임스페이스에 Role 권한 객체 리소스 파일 jenkins-role.yaml을 생성합니다.
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: jenkins
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["create","delete","get","list","patch","update","watch"]
- apiGroups: [""]
resources: ["pods/exec"]
verbs: ["create","delete","get","list","patch","update","watch"]
- apiGroups: [""]
resources: ["pods/log"]
verbs: ["get","list","watch"]
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get"]
3. RoleBinding 객체 리소스 파일 jenkins-rolebinding.yaml을 생성합니다. 다음 권한 바인딩은 ServiceAccount 유형의 jenkins 사용자가 아래와 같이 ci 네임스페이스에서 jenkins(Role 유형) 권한을 가지고 있음을 나타냅니다.
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: RoleBinding
metadata:
name: jenkins
namespace: ci
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: jenkins
subjects:
- kind: ServiceAccount
name: jenkins
클러스터 CA 인증서 가져오기
2. 클러스터 CA 인증서를 보려면 다음 명령을 실행하십시오.
cat /etc/kubernetes/cluster-ca.crt
3. 다음 이미지와 같이 반환된 인증서 정보를 기록하고 저장합니다.
docker.sock 인증
TKE 클러스터의 각 node에는 docker.sock 파일이 있습니다. slave pod는 docker build를 실행할 때 이 파일에 연결합니다. 그 전에 각 노드에 로그인하고 다음 명령을 실행하여 docker build를 인증해야 합니다.
chmod 666 /var/run/docker.sock
ls -l /var/run/docker.sock
Jenkins 구성
설명
다른 Jenkins 버전에서 사용하는 UI에는 차이가 있습니다. 비즈니스 요구 사항에 따라 선택할 수 있습니다.
TKE 사설망 액세스 주소 추가
2. 다음 명령을 실행하여 액세스 도메인 이름을 구성합니다.
sudo sed -i '$a 10.x.x.x cls-ixxxelli.ccs.tencent-cloud.com' /etc/hosts
설명
이 명령은 클러스터에서 사설망 액세스가 활성화된 후 클러스터의 기본 정보 페이지에 있는 ‘클러스터 APIServer’에서 가져올 수 있습니다. 자세한 내용은 클러스터 자격 증명 가져오기를 참고하십시오. 3. 다음 명령을 실행하여 구성이 성공했는지 쿼리합니다.
다음 이미지와 같은 결과가 나타나면 구성에 성공한 것입니다.
Jenkins 설치에 필요한 플러그인
1. Jenkins 백엔드에 로그인하고 왼쪽 사이드바에서 Jenkins 관리를 클릭합니다.
2. ‘Jenkins 관리’ 패널에서 플러그인 관리를 클릭합니다.
3. 플러그인 관리 페이지에서 선택 가능한 플러그인을 선택하고 Locale, Kubernetes, Git Parameter 및 Extended Choice Parameter를 선택합니다.
Locale: 중국어 플러그인. 이 플러그인을 설치하면 Jenkins 인터페이스가 중국어 버전으로 기본 설정될 수 있습니다.
Kubernetes: Kubernetes-plugin.
Git Parameter 및 Extended Choice Parameter: 패키지 빌드 중에 매개변수를 전달하는 데 사용됩니다. 다음 이미지와 같이 Kubernetes 플러그인을 예로 듭니다.
4. 상기 플러그인을 선택한 후 재시작하지 않고 설치를 클릭하고 Jenkins를 다시 시작하면 됩니다.
jnlp 포트 활성화
1. Jenkins 백엔드에 로그인하고 왼쪽 사이드바에서 시스템 관리를 클릭합니다.
2. ‘Jenkins 관리’ 패널에서 전역 보안 구성을 클릭합니다.
3. 인바운드 에이전트용 TCP 포트에서 고정을 선택하고 ‘고정 포트 50000’을 입력합니다.
4. 다른 구성 항목을 기본값으로 유지하고 페이지 하단에서 저장을 클릭합니다.
TKE 클러스터 token 추가
1. Jenkins 백엔드에 로그인하고 왼쪽 사이드바에서 자격 증명 > 시스템을 클릭합니다.
2. ‘시스템’ 패널에서 **전역 자격 증명(unrestricted)**을 선택합니다.
3. ‘전역 자격 증명(unrestricted)’ 페이지의 왼쪽 사이드바에서 자격 증명 추가를 클릭하고 다음과 같이 기본 자격 증명 정보를 구성합니다.
유형: Secret text를 선택합니다.
범위: 기본 옵션 **전역(Jenkins, nodes, items, all child items, etc)**을 사용합니다.
ID: 기본값으로 비워 둡니다.
설명: 자격 증명 이름 및 설명 정보로 표시되는 자격 증명에 대한 정보를 완료합니다. 이 문서는 tke-token을 예로 사용합니다.
4. 아래와 같이 성공적으로 추가된 후 자격 증명 목록에 표시되는 자격 증명을 추가하려면 확인을 클릭합니다. gitlab 인증 추가
1. ‘전역 자격 증명(unrestricted)’ 페이지의 왼쪽 사이드바에서 자격 증명 추가를 클릭하고 다음과 같이 기본 자격 증명 정보를 구성합니다.
유형: Username with password를 선택합니다.
범위: 기본 옵션 **전역(Jenkins, nodes, items, all child items, etc)**을 사용합니다.
사용자 이름: gitlab 사용자 이름.
비밀번호: gitlab 로그인 비밀번호.
ID: 기본값으로 비워 둡니다.
설명: 자격 증명 이름 및 설명 정보로 표시되는 자격 증명에 대한 정보를 완료합니다. 이 문서에서는 gitlab-password를 예로 사용합니다.
2. 확인을 클릭하면 추가가 완료됩니다.
slave pod 템플릿 구성
1. Jenkins 백엔드에 로그인하고 왼쪽 사이드바에서 Jenkins 관리를 클릭합니다.
2. ‘Jenkins 관리’ 패널에서 시스템 구성을 클릭합니다.
3. 아래와 같이 ‘시스템 구성’ 패널 하단의 ‘클라우드’ 섹션에서 새 클라우드 추가 > Kubernetes를 선택합니다.
4. Kubernetes Cloud details...를 클릭하여 Kubernetes에 대한 다음 기본 정보를 구성합니다.
다음은 주요 매개변수 구성입니다. 다른 매개변수는 기본값을 유지하십시오.
이름: 사용자 지정 이름입니다. 이 문서에서는 kubernetes를 예로 사용합니다.
자격 증명: TKE 클러스터 token 추가 단계에서 만든 tke-token 자격 증명을 선택한 다음 연결 테스트를 클릭합니다. 연결에 성공하면 Connection test succeessful 프롬프트가 표시됩니다. Jenkins URL: http://10.x.x.x:8080과 같은 Jenkins 사설망 주소를 입력합니다.
5. Pod Templates > Pod 템플릿 추가 > Pod Templates details...를 선택하고 Pod 템플릿의 기본 정보를 구성합니다.
다음은 주요 매개변수에 대한 설명입니다. 다른 매개변수는 기본값을 유지하십시오.
이름: 사용자 지정 이름을 입력합니다. 이 문서에서는 jnlp-agent를 예로 사용합니다.
레이블: 태그 이름을 정의합니다. 태그를 기반으로 빌드할 Pod를 선택할 수 있습니다. 이 문서에서는 jnlp-agent를 예로 사용합니다.
사용법: 가능한 한 이 노드 사용을 선택합니다.
6. ‘컨테이너 드롭다운 목록’에서 컨테이너 추가 > Container Template을 선택하고 다음 컨테이너 정보를 구성합니다.
이름: 사용자 지정 컨테이너 이름을 입력합니다. 이 문서에서는 jnlp-agent를 예로 사용합니다.
Docker 이미지: 이미지 주소 jenkins/jnlp-slave:alpine을 입력합니다.
작업 디렉터리: 기본값으로 유지합니다. shell 스크립트를 빌드하고 패키징하는 데 사용할 작업 디렉터리를 기록하십시오.
다른 옵션은 기본값으로 둡니다.
7. ‘볼륨’에서 다음 단계를 완료하여 볼륨을 추가하고 slave pod에 대한 docker 명령을 구성합니다.
7.1 볼륨 추가 > Host Path Volume을 선택합니다. 호스트 및 마운트 경로 모두에 대해 /usr/bin/docker를 입력합니다.
7.2 볼륨 추가 > Host Path Volume을 선택합니다. 호스트 및 마운트 경로 모두에 대해 /var/run/docker.sock을 입력합니다.
7.3 페이지 하단의 저장을 클릭하여 slave pod 템플릿 구성을 완료합니다.
다음 단계 작업