提交 6267a5eb 编写于 作者: 阳明的博客's avatar 阳明的博客

更新Jenkins新版本支持

上级 3c503802
...@@ -138,7 +138,7 @@ EOF ...@@ -138,7 +138,7 @@ EOF
```shell ```shell
$ yum makecache fast $ yum makecache fast
$ yum install -y kubelet-1.10.0-0 $ yum install -y kubelet-1.10.0-0
$ yum install -y kubectl-1.10.0-0 $ yum install -y kubectl-1.10.0-0
$ yum install -y kubeadm-1.10.0-0 $ yum install -y kubeadm-1.10.0-0
``` ```
......
...@@ -301,8 +301,12 @@ Jenkins 安装完成了,接下来我们不用急着就去使用,我们要了 ...@@ -301,8 +301,12 @@ Jenkins 安装完成了,接下来我们不用急着就去使用,我们要了
第3步. 配置 Pod Template,其实就是配置 Jenkins Slave 运行的 Pod 模板,命名空间我们同样是用 kube-ops,Labels 这里也非常重要,对于后面执行 Job 的时候需要用到该值,然后我们这里使用的是 cnych/jenkins:jnlp 这个镜像,这个镜像是在官方的 jnlp 镜像基础上定制的,加入了 kubectl 等一些实用的工具。 第3步. 配置 Pod Template,其实就是配置 Jenkins Slave 运行的 Pod 模板,命名空间我们同样是用 kube-ops,Labels 这里也非常重要,对于后面执行 Job 的时候需要用到该值,然后我们这里使用的是 cnych/jenkins:jnlp 这个镜像,这个镜像是在官方的 jnlp 镜像基础上定制的,加入了 kubectl 等一些实用的工具。
![kubernetes plugin config2](./images/jenkins-k8s-config2.png) ![kubernetes plugin config2](./images/jenkins-k8s-config2.png)
另外需要注意我们这里需要在下面挂载两个主机目录,一个是 /var/run/docker.sock,该文件是用于 Pod 中的容器能够共享宿主机的 Docker,这就是大家说的 docker in docker 的方式,Docker 二进制文件我们已经打包到上面的镜像中了,另外一个目录下 /root/.kube 目录,我们将这个目录挂载到容器的 /home/jenkins/.kube 目录下面这是为了让我们能够在 Pod 的容器中能够使用 kubectl 工具来访问我们的 Kubernetes 集群,方便我们后面在 Slave Pod 部署 Kubernetes 应用。 > 注意:由于新版本的 Kubernetes 插件变化较多,如果你使用的 Jenkins 版本在 2.176.x 版本以上,注意将上面的镜像替换成`cnych/jenkins:jnlp6`,否则使用会报错,配置如下图所示:
![kubernetes plugin config3](./images/jenkins-k8s-config3.png)
![kubernetes slave image config](https://bxdc-static.oss-cn-beijing.aliyuncs.com/images/jenkins-slave-new.png)
另外需要注意我们这里需要在下面挂载两个主机目录,一个是`/var/run/docker.sock`,该文件是用于 Pod 中的容器能够共享宿主机的 Docker,这就是大家说的 docker in docker 的方式,Docker 二进制文件我们已经打包到上面的镜像中了,另外一个目录下`/root/.kube`目录,我们将这个目录挂载到容器的`/root/.kube`目录下面这是为了让我们能够在 Pod 的容器中能够使用 kubectl 工具来访问我们的 Kubernetes 集群,方便我们后面在 Slave Pod 部署 Kubernetes 应用。
![kubernetes plugin config3](https://bxdc-static.oss-cn-beijing.aliyuncs.com/images/jenkins-slave-volume.png)
另外还有几个参数需要注意,如下图中的**Time in minutes to retain slave when idle**,这个参数表示的意思是当处于空闲状态的时候保留 Slave Pod 多长时间,这个参数最好我们保存默认就行了,如果你设置过大的话,Job 任务执行完成后,对应的 Slave Pod 就不会立即被销毁删除。 另外还有几个参数需要注意,如下图中的**Time in minutes to retain slave when idle**,这个参数表示的意思是当处于空闲状态的时候保留 Slave Pod 多长时间,这个参数最好我们保存默认就行了,如果你设置过大的话,Job 任务执行完成后,对应的 Slave Pod 就不会立即被销毁删除。
......
...@@ -263,7 +263,7 @@ spec: ...@@ -263,7 +263,7 @@ spec:
注意我们这里定义的 ingress 对象和之前有一个不同的地方是我们增加了 path 路径的定义,不指定的话默认是 '/',创建该 ingress 对象: 注意我们这里定义的 ingress 对象和之前有一个不同的地方是我们增加了 path 路径的定义,不指定的话默认是 '/',创建该 ingress 对象:
```shell ```shell
$ kubectl create -f test-ingress.yaml $ kubectl create -f example-ingress.yaml
ingress.extensions "example-web-app" created ingress.extensions "example-web-app" created
$ kubectl get ingress $ kubectl get ingress
NAME HOSTS ADDRESS PORTS AGE NAME HOSTS ADDRESS PORTS AGE
...@@ -313,7 +313,6 @@ spec: ...@@ -313,7 +313,6 @@ spec:
``` ```
--- ---
[点击查看本文视频](https://youdianzhishi.com/course/6n8xd6/) [点击查看本文视频](https://youdianzhishi.com/course/6n8xd6/)
......
apiVersion: v1
kind: Pod
metadata:
annotations:
kubernetes.io/config.hash: 4a93efc59bf8ea557fc9466a2d8be4b9
kubernetes.io/config.mirror: 4a93efc59bf8ea557fc9466a2d8be4b9
kubernetes.io/config.seen: 2018-05-23T04:49:22.749711053+08:00
kubernetes.io/config.source: file
creationTimestamp: 2018-05-22T20:49:22Z
labels:
app: static
name: static-pod2-master
namespace: default
resourceVersion: "636406"
selfLink: /api/v1/namespaces/default/pods/static-pod2-master
uid: 9b48be7d-5e01-11e8-a101-525400db4df7
spec:
containers:
- image: nginx
imagePullPolicy: Always
name: web
ports:
- containerPort: 80
name: webport
protocol: TCP
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
nodeName: master
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
tolerations:
- effect: NoExecute
operator: Exists
status:
conditions:
- lastProbeTime: null
lastTransitionTime: 2018-05-22T20:49:22Z
status: "True"
type: Initialized
- lastProbeTime: null
lastTransitionTime: 2018-05-22T21:03:49Z
status: "True"
type: Ready
- lastProbeTime: null
lastTransitionTime: 2018-05-22T20:49:22Z
status: "True"
type: PodScheduled
containerStatuses:
- containerID: docker://83006318709f6d1f63c9a1c783b3d174aacc1ea2c4029c4cc4af3e51fa07c967
image: nginx:latest
imageID: docker-pullable://nginx@sha256:0fb320e2a1b1620b4905facb3447e3d84ad36da0b2c8aa8fe3a5a81d1187b884
lastState: {}
name: web
ready: true
restartCount: 0
state:
running:
startedAt: 2018-05-22T21:03:48Z
hostIP: 10.151.30.57
phase: Running
podIP: 10.244.0.4
qosClass: BestEffort
startTime: 2018-05-22T20:49:22Z
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册