brew install 한 Jenkins에서 docker-desktop의 Kubernetes에 액세스
8592 단어 JenkinsMackubernetes
동기
Kubernetes는 편리하지만 상당히 재작성하거나 멀티 클러스터 관리하고 있기 때문에 Jenkins는 클러스터 밖에 서 있다. 로컬의 개발 환경을 만들어 두면, 추구한다.
준비
Install Docker-Desktop
공식에서 설치 프로그램에 따라 설치합니다.
htps //w w. 도 c r. 코 m / p 로즈 cts / 도 c 케 r에서 sk와 p
설치가 끝나면 설정 → Kubernetes에서 Kubernetes를 활성화하십시오.
Install Java
Java가 들어 있지 않은 사람은, Java로부터 넣는다.
덧붙여서, 갑자기 Jenkins에서 넣으려고 하면, 우선은 Java를 인스톨하지 말고 인스톨 커멘드 가르쳐 주었다. 친절.
$ brew cask install homebrew/cask-versions/adoptopenjdk8
Install Jenkins
$ brew install jenkins
Change listening port
기본값은 localhost에서만 액세스 할 수 있으므로 Kubernetes의 Pod에서 액세스 할 수있게합니다. 청취하는 주소를 0.0.0.0으로 변경하면됩니다.
이 변경을 수행하면 동일한 네트워크의 모든 컴퓨터에서 액세스할 수 있으므로 Jenkins admin의 암호 관리를 확실히 합시다.
$ sudo vi /usr/local/opt/jenkins/homebrew.mxcl.jenkins.plist
17c17
< <string>--httpListenAddress=127.0.0.1</string>
---
> <string>--httpListenAddress=0.0.0.0</string>
Initialize Jenkins
$ brew services start jenkins
Jenkins가 시작되면 http://localhost:8080을 브라우저에서 열고 초기화 암호를 입력하여 권장되는 플러그인을 설치합니다.
5분 정도 걸리므로, 소휴지한다.
여담
앞으로 문제가 발생하면 일단 재부팅 http://localhost:8080/safeRestart
Jenkins가 멈추더라도 조용하고 서비스를 다시 시작합니다.
$ brew services restart jenkins
Integrate with a Kubernetes
Permit Agent → Jenkins Master
특별한 이유가 없으면 랜덤으로 괜찮습니다.
http://localhost:8080/configureSecurity/
Install Kubernetes plugin
kubernetes 아무쪼록 등등 히트 한다고 생각합니다만, 그 자체 즈바리kubernetes
라는 것을 인스톨 해 주세요.
http://localhost:8080/pluginManager/available
Configure Kubernetes info
하단에 클라우드 추가라는 버튼이 늘어나고 있다고 생각하기 때문에 거기에서 Kubernetes를 선택한다.
http://localhost:8080/configure
일단, 다음의 3개를 메워 두면 됩니다.
Kubernetes URL
$ kubectl config view --flatten -o jsonpath='{.clusters[?(@.name=="docker-desktop")].cluster.server}'
https://127.0.0.1:6443
또는
$ kubectl config view --flatten -o jsonpath='{.clusters[?(@.name=="docker-for-desktop-cluster")].cluster.server}'
https://127.0.0.1:6443
Kubernetes server certificate key
$ kubectl config view --flatten -o jsonpath='{.users[?(@.name=="docker-desktop")].user.client-certificate-data}' | base64 --decode
-----BEGIN CERTIFICATE-----
xxx
xxx
xxx
-----END CERTIFICATE-----
또는
$ kubectl exec -it kube-apiserver-docker-for-desktop -n kube-system -- cat /run/config/pki/ca.crt
-----BEGIN CERTIFICATE-----
xxx
xxx
xxx
-----END CERTIFICATE-----
Jenkins URL
127.0.0.1이라면 Kubernetes의 Pod에서 Jenkins Master에 연결할 수 없게 되므로 주의.
$ ip addr show en0
수고하셨습니다, 준비 완료입니다.
작은 휴식.
테스트
Kubernetes plugin github에는, 다수 견본이 있기 때문에, 적용 가능하게 선택하고 실행한다.
htps : // 기주 b. 코 m / 지 킨 킨 s 시 / 쿠베 r 네 슈 ぅ 긴 / t 네 / 뭐 r / 에 mp ぇ s
새 작업을 파이프 라인으로 만듭니다.
http://localhost:8080/view/all/newJob
스크립트에 다음 코드를 복사합니다.
pipeline {
agent {
kubernetes {
//cloud 'kubernetes'
label 'mypod'
yaml """
apiVersion: v1
kind: Pod
spec:
containers:
- name: maven
image: maven:3.3.9-jdk-8-alpine
command: ['cat']
tty: true
"""
}
}
stages {
stage('Run maven') {
steps {
container('maven') {
sh 'mvn -version'
}
}
}
}
}
첫회 실행시는, maven image의 다운로드등으로 다소 시간이 걸립니다만, 2회째 이후는 곧 끝나기 때문에 안심을.
성공하면 이런 출력이 되어야 합니다.
Started by user [email protected]
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] Start of Pipeline
[Pipeline] podTemplate
[Pipeline] {
[Pipeline] node
Still waiting to schedule task
‘mypod-br97w-6pr07’ is offline
Agent mypod-br97w-6pr07 is provisioned from template Kubernetes Pod Template
Agent specification [Kubernetes Pod Template] (mypod):
yaml:
apiVersion: v1
kind: Pod
spec:
containers:
- name: maven
image: maven:3.3.9-jdk-8-alpine
command: ['cat']
tty: true
Running on mypod-br97w-6pr07 in /home/jenkins/workspace/maven
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Run maven)
[Pipeline] container
[Pipeline] {
[Pipeline] sh
+ mvn -version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T16:41:47+00:00)
Maven home: /usr/share/maven
Java version: 1.8.0_121, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.8-openjdk/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.9.125-linuxkit", arch: "amd64", family: "unix"
[Pipeline] }
[Pipeline] // container
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] }
[Pipeline] // podTemplate
[Pipeline] End of Pipeline
Finished: SUCCESS
실패하면 로그를 살펴 보겠습니다.
오류 메시지로 구그하면 대개 해결 방법을 찾을 수 있습니다.
http://localhost:8080/log/all
끝에
Kubernetes 클러스터를 다시 만들거나 PC를 재부팅하면 Kubernetes와 Jenkins의 IP가 변경 될 수 있으므로 매번 업데이트해야하는 것이 옥에 있지만 역시 로컬에서 시도하면 피드백주기 압도적으로 빠르기 때문에 시도하십시오.
Reference
이 문제에 관하여(brew install 한 Jenkins에서 docker-desktop의 Kubernetes에 액세스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/TakiTake@github/items/e20171588a0e67e59a9e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Install Docker-Desktop
공식에서 설치 프로그램에 따라 설치합니다.
htps //w w. 도 c r. 코 m / p 로즈 cts / 도 c 케 r에서 sk와 p
설치가 끝나면 설정 → Kubernetes에서 Kubernetes를 활성화하십시오.
Install Java
Java가 들어 있지 않은 사람은, Java로부터 넣는다.
덧붙여서, 갑자기 Jenkins에서 넣으려고 하면, 우선은 Java를 인스톨하지 말고 인스톨 커멘드 가르쳐 주었다. 친절.
$ brew cask install homebrew/cask-versions/adoptopenjdk8
Install Jenkins
$ brew install jenkins
Change listening port
기본값은 localhost에서만 액세스 할 수 있으므로 Kubernetes의 Pod에서 액세스 할 수있게합니다. 청취하는 주소를 0.0.0.0으로 변경하면됩니다.
이 변경을 수행하면 동일한 네트워크의 모든 컴퓨터에서 액세스할 수 있으므로 Jenkins admin의 암호 관리를 확실히 합시다.
$ sudo vi /usr/local/opt/jenkins/homebrew.mxcl.jenkins.plist
17c17
< <string>--httpListenAddress=127.0.0.1</string>
---
> <string>--httpListenAddress=0.0.0.0</string>
Initialize Jenkins
$ brew services start jenkins
Jenkins가 시작되면 http://localhost:8080을 브라우저에서 열고 초기화 암호를 입력하여 권장되는 플러그인을 설치합니다.
5분 정도 걸리므로, 소휴지한다.
여담
앞으로 문제가 발생하면 일단 재부팅 http://localhost:8080/safeRestart
Jenkins가 멈추더라도 조용하고 서비스를 다시 시작합니다.
$ brew services restart jenkins
Integrate with a Kubernetes
Permit Agent → Jenkins Master
특별한 이유가 없으면 랜덤으로 괜찮습니다.
http://localhost:8080/configureSecurity/
Install Kubernetes plugin
kubernetes 아무쪼록 등등 히트 한다고 생각합니다만, 그 자체 즈바리
kubernetes
라는 것을 인스톨 해 주세요.http://localhost:8080/pluginManager/available
Configure Kubernetes info
하단에 클라우드 추가라는 버튼이 늘어나고 있다고 생각하기 때문에 거기에서 Kubernetes를 선택한다.
http://localhost:8080/configure
일단, 다음의 3개를 메워 두면 됩니다.
Kubernetes URL
$ kubectl config view --flatten -o jsonpath='{.clusters[?(@.name=="docker-desktop")].cluster.server}'
https://127.0.0.1:6443
또는
$ kubectl config view --flatten -o jsonpath='{.clusters[?(@.name=="docker-for-desktop-cluster")].cluster.server}'
https://127.0.0.1:6443
Kubernetes server certificate key
$ kubectl config view --flatten -o jsonpath='{.users[?(@.name=="docker-desktop")].user.client-certificate-data}' | base64 --decode
-----BEGIN CERTIFICATE-----
xxx
xxx
xxx
-----END CERTIFICATE-----
또는
$ kubectl exec -it kube-apiserver-docker-for-desktop -n kube-system -- cat /run/config/pki/ca.crt
-----BEGIN CERTIFICATE-----
xxx
xxx
xxx
-----END CERTIFICATE-----
Jenkins URL
127.0.0.1이라면 Kubernetes의 Pod에서 Jenkins Master에 연결할 수 없게 되므로 주의.
$ ip addr show en0
수고하셨습니다, 준비 완료입니다.
작은 휴식.
테스트
Kubernetes plugin github에는, 다수 견본이 있기 때문에, 적용 가능하게 선택하고 실행한다.
htps : // 기주 b. 코 m / 지 킨 킨 s 시 / 쿠베 r 네 슈 ぅ 긴 / t 네 / 뭐 r / 에 mp ぇ s
새 작업을 파이프 라인으로 만듭니다.
http://localhost:8080/view/all/newJob
스크립트에 다음 코드를 복사합니다.
pipeline {
agent {
kubernetes {
//cloud 'kubernetes'
label 'mypod'
yaml """
apiVersion: v1
kind: Pod
spec:
containers:
- name: maven
image: maven:3.3.9-jdk-8-alpine
command: ['cat']
tty: true
"""
}
}
stages {
stage('Run maven') {
steps {
container('maven') {
sh 'mvn -version'
}
}
}
}
}
첫회 실행시는, maven image의 다운로드등으로 다소 시간이 걸립니다만, 2회째 이후는 곧 끝나기 때문에 안심을.
성공하면 이런 출력이 되어야 합니다.
Started by user [email protected]
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] Start of Pipeline
[Pipeline] podTemplate
[Pipeline] {
[Pipeline] node
Still waiting to schedule task
‘mypod-br97w-6pr07’ is offline
Agent mypod-br97w-6pr07 is provisioned from template Kubernetes Pod Template
Agent specification [Kubernetes Pod Template] (mypod):
yaml:
apiVersion: v1
kind: Pod
spec:
containers:
- name: maven
image: maven:3.3.9-jdk-8-alpine
command: ['cat']
tty: true
Running on mypod-br97w-6pr07 in /home/jenkins/workspace/maven
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Run maven)
[Pipeline] container
[Pipeline] {
[Pipeline] sh
+ mvn -version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T16:41:47+00:00)
Maven home: /usr/share/maven
Java version: 1.8.0_121, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.8-openjdk/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.9.125-linuxkit", arch: "amd64", family: "unix"
[Pipeline] }
[Pipeline] // container
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] }
[Pipeline] // podTemplate
[Pipeline] End of Pipeline
Finished: SUCCESS
실패하면 로그를 살펴 보겠습니다.
오류 메시지로 구그하면 대개 해결 방법을 찾을 수 있습니다.
http://localhost:8080/log/all
끝에
Kubernetes 클러스터를 다시 만들거나 PC를 재부팅하면 Kubernetes와 Jenkins의 IP가 변경 될 수 있으므로 매번 업데이트해야하는 것이 옥에 있지만 역시 로컬에서 시도하면 피드백주기 압도적으로 빠르기 때문에 시도하십시오.
Reference
이 문제에 관하여(brew install 한 Jenkins에서 docker-desktop의 Kubernetes에 액세스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/TakiTake@github/items/e20171588a0e67e59a9e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
pipeline {
agent {
kubernetes {
//cloud 'kubernetes'
label 'mypod'
yaml """
apiVersion: v1
kind: Pod
spec:
containers:
- name: maven
image: maven:3.3.9-jdk-8-alpine
command: ['cat']
tty: true
"""
}
}
stages {
stage('Run maven') {
steps {
container('maven') {
sh 'mvn -version'
}
}
}
}
}
Started by user [email protected]
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] Start of Pipeline
[Pipeline] podTemplate
[Pipeline] {
[Pipeline] node
Still waiting to schedule task
‘mypod-br97w-6pr07’ is offline
Agent mypod-br97w-6pr07 is provisioned from template Kubernetes Pod Template
Agent specification [Kubernetes Pod Template] (mypod):
yaml:
apiVersion: v1
kind: Pod
spec:
containers:
- name: maven
image: maven:3.3.9-jdk-8-alpine
command: ['cat']
tty: true
Running on mypod-br97w-6pr07 in /home/jenkins/workspace/maven
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Run maven)
[Pipeline] container
[Pipeline] {
[Pipeline] sh
+ mvn -version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T16:41:47+00:00)
Maven home: /usr/share/maven
Java version: 1.8.0_121, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.8-openjdk/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.9.125-linuxkit", arch: "amd64", family: "unix"
[Pipeline] }
[Pipeline] // container
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] }
[Pipeline] // podTemplate
[Pipeline] End of Pipeline
Finished: SUCCESS
Kubernetes 클러스터를 다시 만들거나 PC를 재부팅하면 Kubernetes와 Jenkins의 IP가 변경 될 수 있으므로 매번 업데이트해야하는 것이 옥에 있지만 역시 로컬에서 시도하면 피드백주기 압도적으로 빠르기 때문에 시도하십시오.
Reference
이 문제에 관하여(brew install 한 Jenkins에서 docker-desktop의 Kubernetes에 액세스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/TakiTake@github/items/e20171588a0e67e59a9e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)