- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Ubuntu 17.04 VM 上运行 Kubernetes 1.10.0、Docker 17.03.2-ce 和 Jenkins 2.107.1,并在 Jenkins 中安装了 Kubernetes Plugin 1.5。我有另外 4 个 Ubuntu VM 成功设置为集群中的节点,包括未受污染的主服务器。我可以直接部署基于 nginx 的服务,并且可以不受限制地访问仪表板。所以,Kubernetes 本身似乎已经足够幸福了。
在你提到它之前,我要说的是,我们没有短期计划在 Kubernetes 本身内部运行 Jenkins master。因此,我更愿意让这个策略发挥作用。
Kubernetes 云的插件配置如下:
“名称”:kubernetes
“Kubernetes URL”:https://172.20.43.30:6443
来自
# kubectl describe pods/kube-apiserver-jenkins-kube-master --namespace=kube-system | grep Liveness
Liveness: http-get https://172.20.43.30:6443/healthz delay=15s timeout=15s period=10s #success=1 #failure=8
接受不安全的证书后,浏览器会访问 https://172.20.43.30:6443/将显示
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {
},
"status": "Failure",
"message": "forbidden: User \"system:anonymous\" cannot get path \"/\"",
"reason": "Forbidden",
"details": {
},
"code": 403
}
“Kubernetes 服务器证书 key ”获取自
# kubectl get pods/kube-apiserver-jenkins-kube-master -o yaml --namespace=kube-system | grep tls
- --tls-private-key-file=/etc/kubernetes/pki/apiserver.key
- --tls-cert-file=/etc/kubernetes/pki/apiserver.crt
# cat /etc/kubernetes/pki/apiserver.crt
-----BEGIN CERTIFICATE-----
MIIDZ******
*******************
****PP5wigl
-----END CERTIFICATE-----
“Kubernetes 命名空间”:jenkins-slaves
jenkins-slaves 命名空间设置如下...
创建 jenkins-namespace.yaml 并添加以下内容:
apiVersion: v1
kind: Namespace
metadata:
name: jenkins-slaves
labels:
name: jenkins-slaves
spec:
finalizers:
- kubernetes
然后
# kubectl create -f jenkins-namespace.yaml
namespace "jenkins-slaves" created
# kubectl -n jenkins-slaves create sa jenkins
serviceaccount "jenkins" created
# kubectl create role jenkins --verb=get,list,watch,create,patch,delete --resource=pods
role.rbac.authorization.k8s.io "jenkins" created
# kubectl create rolebinding jenkins --role=jenkins --serviceaccount=jenkins-slaves:jenkins
rolebinding.rbac.authorization.k8s.io "jenkins" created
# kubectl create clusterrolebinding jenkins --clusterrole cluster-admin --serviceaccount=jenkins-slaves:jenkins
clusterrolebinding.rbac.authorization.k8s.io "jenkins" created
使用吐出的 token 添加了“ secret 文本”的 Jenkins 凭证
# kubectl get -n jenkins-slaves sa/jenkins --template='{{range .secrets}}{{ .name }} {{end}}' | xargs -n 1 kubectl -n jenkins-slaves get secret --template='{{ if .data.token }}{{ .data.token }}{{end}}' | head -n 1 | base64 -d -
“测试连接”显示“连接测试成功”
应该注意的是,相同的 token 可用于登录具有完全访问权限的 Kubernetes 仪表板。
“ Jenkins 网址”:http://172.20.43.30:8080
“Kubernetes Pod 模板:名称”:jnlp 从属
“Kubernetes Pod 模板:命名空间”:jenkins-slaves
“Kubernetes Pod 模板:标签”:jenkins-slaves
“Kubernetes Pod Template:用法”:仅构建标签表达式与该节点匹配的作业
“Kubernetes Pod 模板:容器模板:名称”:jnlp-slave
“Kubernetes Pod 模板:容器模板:Docker 镜像”:jenkins/jnlp-slave
“Kubernetes Pod 模板:容器模板:工作目录”:./.jenkins-agent
此时,如果我创建一个作业并将“限制此项目可以运行的位置”设置为“jenkins-slaves”的“标签表达式”,我会得到:
Label jenkins-slaves is serviced by no nodes and 1 cloud. Permissions or other restrictions provided by plugins may prevent this job from running on those nodes.
如果我尝试构建作业,它将位于构建队列中,并且“构建执行器状态”会定期显示“jnlp-slave-#####(离线)(挂起)”,然后消失几个几秒钟后。
系统日志显示:
Apr 03, 2018 12:16:21 PM SEVERE org.csanchez.jenkins.plugins.kubernetes.KubernetesLauncher logLastLines
Error in provisioning; agent=KubernetesSlave name: jnlp-slave-t8004, template=PodTemplate{inheritFrom='', name='jnlp slave', namespace='jenkins-slaves', label='jenkins-slaves', nodeSelector='', nodeUsageMode=EXCLUSIVE, workspaceVolume=org.csanchez.jenkins.plugins.kubernetes.volumes.workspace.EmptyDirWorkspaceVolume@44dcba2d, containers=[ContainerTemplate{name='jnlp-slave', image='jenkins/jnlp-slave', workingDir='./.jenkins-agent', command='/bin/sh -c', args='cat', ttyEnabled=true, resourceRequestCpu='', resourceRequestMemory='', resourceLimitCpu='', resourceLimitMemory='', livenessProbe=org.csanchez.jenkins.plugins.kubernetes.ContainerLivenessProbe@58f0ceec}]}. Container jnlp exited with error 255. Logs: Warning: JnlpProtocol3 is disabled by default, use JNLP_PROTOCOL_OPTS to alter the behavior
Warning: SECRET is defined twice in command-line arguments and the environment variable
Warning: AGENT_NAME is defined twice in command-line arguments and the environment variable
Apr 03, 2018 4:16:16 PM hudson.remoting.jnlp.Main createEngine
INFO: Setting up agent: jnlp-slave-t8004
Apr 03, 2018 4:16:16 PM hudson.remoting.jnlp.Main$CuiListener <init>
INFO: Jenkins agent is running in headless mode.
Apr 03, 2018 4:16:16 PM hudson.remoting.Engine startEngine
INFO: Using Remoting version: 3.19
Apr 03, 2018 4:16:16 PM hudson.remoting.Engine startEngine
WARNING: No Working Directory. Using the legacy JAR Cache location: /home/jenkins/.jenkins/cache/jars
Apr 03, 2018 4:16:17 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Locating server among [http://172.20.43.30:8080/]
Apr 03, 2018 4:16:17 PM hudson.remoting.jnlp.Main$CuiListener error
SEVERE: http://172.20.43.30:8080/tcpSlaveAgentListener/ is invalid: 404 Not Found
java.io.IOException: http://172.20.43.30:8080/tcpSlaveAgentListener/ is invalid: 404 Not Found
at org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver.resolve(JnlpAgentEndpointResolver.java:197)
at hudson.remoting.Engine.innerRun(Engine.java:518)
at hudson.remoting.Engine.run(Engine.java:469)
Apr 03, 2018 12:16:21 PM INFO org.csanchez.jenkins.plugins.kubernetes.KubernetesSlave _terminate
Terminating Kubernetes instance for agent jnlp-slave-t8004
Apr 03, 2018 12:16:21 PM WARNING io.fabric8.kubernetes.client.Config tryServiceAccount
Error reading service account token from: [/var/run/secrets/kubernetes.io/serviceaccount/token]. Ignoring.
Apr 03, 2018 12:16:21 PM INFO okhttp3.internal.platform.Platform log
ALPN callback dropped: HTTP/2 is disabled. Is alpn-boot on the boot class path?
Apr 03, 2018 12:16:21 PM INFO org.csanchez.jenkins.plugins.kubernetes.KubernetesSlave _terminate
Terminated Kubernetes instance for agent jenkins-slaves/jnlp-slave-t8004
Apr 03, 2018 12:16:21 PM INFO org.csanchez.jenkins.plugins.kubernetes.KubernetesSlave _terminate
Disconnected computer jnlp-slave-t8004
Apr 03, 2018 12:16:25 PM INFO org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud provision
Excess workload after pending Kubernetes agents: 1
Apr 03, 2018 12:16:25 PM INFO org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud provision
Template: Kubernetes Pod Template
Apr 03, 2018 12:16:25 PM WARNING io.fabric8.kubernetes.client.Config tryServiceAccount
Error reading service account token from: [/var/run/secrets/kubernetes.io/serviceaccount/token]. Ignoring.
Apr 03, 2018 12:16:25 PM INFO okhttp3.internal.platform.Platform log
ALPN callback dropped: HTTP/2 is disabled. Is alpn-boot on the boot class path?
Apr 03, 2018 12:16:25 PM INFO hudson.slaves.NodeProvisioner$StandardStrategyImpl apply
Started provisioning Kubernetes Pod Template from kubernetes with 1 executors. Remaining excess workload: 0
Apr 03, 2018 12:16:35 PM WARNING io.fabric8.kubernetes.client.Config tryServiceAccount
Error reading service account token from: [/var/run/secrets/kubernetes.io/serviceaccount/token]. Ignoring.
Apr 03, 2018 12:16:35 PM INFO hudson.slaves.NodeProvisioner$2 run
Kubernetes Pod Template provisioning successfully completed. We have now 2 computer(s)
Apr 03, 2018 12:16:35 PM INFO org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud provision
Excess workload after pending Kubernetes agents: 0
Apr 03, 2018 12:16:35 PM INFO org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud provision
Template: Kubernetes Pod Template
Apr 03, 2018 12:16:35 PM INFO okhttp3.internal.platform.Platform log
ALPN callback dropped: HTTP/2 is disabled. Is alpn-boot on the boot class path?
Apr 03, 2018 12:16:35 PM INFO org.csanchez.jenkins.plugins.kubernetes.KubernetesLauncher launch
Created Pod: jnlp-slave-bnz94 in namespace jenkins-slaves
Apr 03, 2018 12:16:35 PM INFO org.csanchez.jenkins.plugins.kubernetes.KubernetesLauncher launch
-史蒂夫·马林
佛罗里达州奥兰多
最佳答案
我去了http://172.20.43.30:8080/configureSecurity/并将“代理:JNLP 代理的 TCP 端口”设置为“随机”
然后我得到了一个“jnlp-slave-ttm5v(暂停)”,它保留在“构建执行器状态”
日志说:
Container is waiting jnlp-slave-ttm5v [jnlp-slave]:
ContainerStateWaiting(message=Error response from daemon: the working directory './.jenkins-agent' is invalid, it needs to be an absolute path, reason=CreateContainerError, additionalProperties={})
将“工作目录”设置为“/home/jenkins”后,我看到实际上在 k8s 上创建了一个 pod:
# kubectl get pods --namespace=jenkins-slaves
NAME READY STATUS RESTARTS AGE
jnlp-slave-1ds27 2/2 Running 0 42s
我的工作成功运行了!
Started by user Buildguy
Agent jnlp-slave-1ds27 is provisioned from template Kubernetes Pod Template
Agent specification [Kubernetes Pod Template] (jenkins-slaves):
* [jnlp-slave] jenkins/jnlp-slave(resourceRequestCpu: , resourceRequestMemory: , resourceLimitCpu: , resourceLimitMemory: )
Building remotely on jnlp-slave-1ds27 (jenkins-slaves) in workspace
/home/jenkins/workspace/maven-parent-poms
关于docker - Jenkins Kubernetes 插件无法配置 jnlp-slave pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49635916/
我想知道一个服务器是否可以同时是slave和master。我们的问题是我们有很多移动单元需要同步到主服务器,但它们只需要主服务器上 100 个表中的 6 个。除了延迟同步和增加数据成本之外,所有额外的
此站点上的许多帖子(例如 this、this 或 this)讨论了如何检测 Android 上丢失的蓝牙连接。本质上,一个人可以注册 Action 的广播 BluetoothAdapter.ACTIO
我有主从复制,我们有很多记录插入主服务器,以至于从服务器更新速度不够快。我们有 innodb,也许 slave 上的复制是单线程的。我想知道我们是否可以在数据库方面做些什么,而不是在编码或表结构等方面
正如标题所说,“从机启动”和“从机启动”有什么区别?当我接受DBA面试时,他问了这个问题,我搜索了google但没有找到答案,有人知道吗? 最佳答案 没有区别.. Slave start; 已弃用,现
我在设置主从配置时遇到困难。 Master Database 在 Ubuntu(亚马逊 AWS 实例)上运行并成功设置主复制。 我有本地主机作为从属服务器。 (Windows 机器)。 主数据库快照
我的权限被拒绝,但不知道为什么。从我的 Jenkins 大师那里,我能够使用 ssh-rsa-key 运行以下命令 scp /var/cache/jenkins/war/WEB-INF/slave.j
我计划在一台主服务器和几台从服务器上使用 MySQL 设置服务器。我会在其中一个从服务器上定期执行数据 EBS 的一致备份服务器(我总是会先停止数据库,然后在完成后重新启动它)。 从站故障转移 如果其
如果我使用 —expect-slaves 3 运行 headless Locust master,如果我连接 5 个 slave,master 会接受并使用所有连接的 slave 吗? 最佳答案 答案
当在有从属的从属的环境中使用 Redis 的复制功能时,connected_slaves 计数器是否会增加主控、充当主控的从属或两者?引用示例图:https://imgur.com/Ge1WLzX 在
我想配置slave以启用写入(slave-read-only no)。用例是启用临时缓存。 但是,文档中的这段让我担心: Normally slave nodes will redirect clie
我想设置一个 Linux 节点作为 Jenkins 主节点的从属节点。我正在浏览 the tutorial为 Linux 机器设置它。 Have master launch slave agent v
我现有的 jenkins 主从连接断开了。我尝试通过 scp 命令建立连接。 关于主人: scp ~/ .ssh/id_rsa.pub jenkins@:/tmp 在奴隶上: • ssh-keyg
所以我从从属虚拟机列表中删除了 vm4,当我运行以下命令时它不会访问它 hdfs dfsadmin -report 结果是: ubuntu@anmol-vm1-new:~$ hdfs dfsadmin
一.安装环境 这里也顺便记录一下如何在windows7上卸载解压版MySQL5.6数据库,如果无需卸载请忽略下一步,直接看第三步即可 二.windows7卸载解压版MySQL5.6 1.使
我已按照有关如何设置 Redis 主服务器集群的说明进行操作,但完成后我无法看到为什么服务器无法相互看到。这是我组装的第二个版本,我被困在同一个地方。我真的可以使用一些以前从未在 REDIS 上工作过
我有一个本地 Jenkins 服务器,我已经设置并为其创建了作业。我正在尝试注册新的 slave/build 机器,但 Jenkins 拒绝提供 slave.jar 或 slave-agent.jnl
我正在尝试在大型 redis 队列中使用哨兵进行故障转移(12 个哨兵,500 多个分片,每个分片一个主站和一个从站)。我遇到了一个非常奇怪的问题,我的哨兵反复向某些 redis 节点发出命令 +fi
我如何配置jenkins master slavemaster在linux上,slave在windows上我需要通过master在slave上执行一个文件我对 Jenkins 不太了解,所以我需要完整
如何将系统配置为有一个主多从,用 gmake 构建普通的 c 代码?从站如何从主站访问工作区?我想 NFS 共享是可行的,但如果这是不可能的任何 其他 选项? http://wiki.hudson-c
有没有人尝试过使用 Jenkins Rest/API 或任何其他方式在 Jenkins slave 的配置中添加或更新环境变量的方法。 使用 Jenkins Swarm 插件,我创建了一个从站(它使用
我是一名优秀的程序员,十分优秀!