步骤
官网文档:https://www.jenkins.io/doc/book/installing/
- 登录k8s的master节点,创建一个namespace,专门用于安装jenkins
- 创建namespace
kubectl create namespace jenkins
- 查看已经创建的namespace
kubectl get namespace
- 创建部署的yaml,对外暴露的端口是30000
apiVersion: apps/v1
kind: Deployment
metadata:
name: jenkins-deployment
spec:
replicas: 1
selector:
matchLabels:
app: jenkins
template:
metadata:
labels:
app: jenkins
spec:
containers:
- name: jenkins
image: jenkinsci/blueocean:latest
ports:
- containerPort: 8080
volumeMounts:
- name: jenkins-home
mountPath: /var/jenkins_home
volumes:
- name: jenkins-home
emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
name: jenkins
spec:
type: NodePort
ports:
- port: 8080
targetPort: 8080
nodePort: 30000
selector:
app: jenkins
- 部署yaml
kubectl apply -f jenkins.yaml -n jenkins
- 查看部署的节点
kubectl get po -n jenkins -o wide
- 打开网页查看http://10.10.121.23:30000,在界面上设置jenkins
- 刚登录jenkins时,需要输入管理员密码,密码在容器中的/var/jenkins_home/secrets/initialAdminPassword文件中
问题
1.yaml出现问题: did not find expected key
error: error parsing jenkins.yaml: error converting YAML to JSON: yaml: line 22: did not find expected key
- 原因:字段缩进存在问题,查看是不是没有对齐
- 解决办法:修改缩进
2.yaml出现问题: could not find expected ‘:’
error: error parsing jenkins.yaml: error converting YAML to JSON: yaml: line 27: could not find expected ':'
- 原因:yaml配置文件遇到“:”或者“-”后面必须留一个空格
- 解决办法:查看格式是否按要求
3.yaml出现问题: no matches for kind “Deployment” in version “extensions/v1beta1”
- 原因:apiVersion与k8s版本没有匹配
- 解决方法:选择合适的类型
Deployment中:
1.6版本之前: extensions/v1beta1
1.6版本到1.9版本之间: apps/v1beta1
1.9版本之后:apps/v1
4.镜像拉取不下来:ImagePullBackOff
- 解决办法:配置加速器
在/etc/docker/daemon.json文件中添加以下内容
{
"storage-driver": "devicemapper",
"log-opts": {
"max-size": "100m",
"max-file": "3"
},
"insecure-registries": [
"0.0.0.0/0"
],
"log-driver": "json-file",
"registry-mirrors": ["https://4q46e9rx.mirror.aliyuncs.com"]
}
重启使其生效
[root@k8s-master-10-10-121-21 ~]# systemctl daemon-reload
[root@k8s-master-10-10-121-21 ~]# systemctl restart docker
参考文献
[1]https://segmentfault.com/a/1190000017134399
[2]https://phoenixnap.com/kb/how-to-install-jenkins-kubernetes