安装完kubernets后,不可避免的要在集群中安装一些日常所需要的软件和服务。其中对于运维来说,jenkins是经常使用的一个工具,这里,介绍一下如何在k8s中安装jenkins工具。这也是为将来为jinkins+k8s的ci/cd流程做一个基础的架构环境。
一:首先,检查k8s环境,确保集群可用。然后在各node节点下载jenkins相关的docker镜像。
k8s-node1# kubectl get node
NAME STATUS ROLES AGE VERSION
k8s-node1 Ready master 64d v1.10.2
k8s-node2 Ready <none> 64d v1.10.2
k8s-node3 Ready <none> 64d v1.10.3
k8s-node2#docker pull jenkins/jenkins
k8s-node3#docker pull jenkins/jenkins
二:编辑创建jenkins的deployment和service的yaml脚本,并创建。
# more jenkins.yaml
#-----Deployment----------------
apiVersion: apps/v1
kind: Deployment
metadata:
name: jenkins
labels:
app: jenkins
spec:
replicas: 1 #副本数为1
selector:
matchLabels:
app: jenkins
template:
metadata:
labels:
app: jenkins
spec:
containers:
- name: jenkins
image: docker.io/jenkins/jenkins:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080
---
#------service---------------
apiVersion: v1
kind: Service
metadata:
name: jenkins
labels:
name: jenkins
spec:
type: NodePort
ports:
- name: jenkins
port: 8080
targetPort: 8080
nodePort: 30009 #开启nodeport
- name: jenkins-agent
port: 50000
targetPort: 50000
nodePort: 30010
selector:
app: jenkins
k8s-node1# kubectl create -f ./jenkins.yaml
创建完成之后,可用看到k8s中已有jenkins相关的pod,以及service。
# kubectl get pods
NAME READY STATUS RESTARTS AGE
jenkins-59cd98fc55-74qlv 1/1 Running 0 2h
# kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
jenkins NodePort 10.104.15.194 <none> 8080:30009/TCP,50000:30010/TCP 2h
三:登陆jenkins,由于我们用的是nodeport模式,在每个k8s nodes上都会开放jenkins的访问端口30009,这里随便选择一台登陆即可,我这里的访问地址是http://192.168.232.129:30009
登陆需要输入管理员密码,这个密码需至jenkins的系统上面找,在这里,可用到具体运行jenkins的k8s-node上去寻找,例如:
k8s-node2# more /var/lib/docker/volumes/1e6d6ddaa80fa22783731a4f6496055328762062e02e2831c2f69e4402a0120c/_data/secrets/initialAdminPassword
55a473d9d2ad408f9fbcbf24489d6010
登陆进去后,jenkins会提示安装插件,有可能会出现如下错误:
这个好像是jenkins的一个小bug,需要去后台修改插件的升级地址,可以直接访问插件的管理后台修改:http://192.168.232.129:30009/pluginManager/advanced
修改https地址为http:
修改完之后,重启下jenkins的docker容器,网络问题即可解决。安装好插件后即可正常登陆和使用jenkins了。
来源:51CTO
作者:icenycmh
链接:https://blog.51cto.com/icenycmh/2153183