jenkins安装部署
简述:部署方式有三种:
- 直接以java拉起jar包,通常只用于调试
- 先安装tomcat,然后jenkins以tomcat的一个webapp提供服务
- 直接使用容器进行安装jenkins
使用容器的方式部署安装Jenkins
了解到的部署方法有两种: 使用helm安装, 使k8s直接安装,下面直接以k8s直接安装为例
创建命名空间
kubectl create namespace jenkins
kubectl get ns
使用k8s kubelet修改pause默认镜像仓库(可选)
因为 k8s.gcr.io 无法访问或者访问较慢,所以使用阿里云的镜像源代替
a. 查看 kubelet 配置
systemctl status -l kubelet
b. 切换目录 cd /var/lib/kubelet/
c. 查看默认镜像仓库cat kubeadm-flags.env, 然后可以看到以下内容
KUBELET_KUBEADM_ARGS="--container-runtime=remote --container-runtime-endpoint=unix:///run/containerd/containerd.sock --pod-infra-container-image=registry.k8s.io/pause:3.8"
d. 备份原有配置文件: cp kubeadm-flags.env kubeadm-flags.env.ori
e. 重启 kubelet 服务
systemctl daemon-reload
systemctl restart kubelet
使用yaml文件方式安装
- 准备部署文件jenkins-deployment.yaml
vim jenkins-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: jenkins
spec:
replicas: 1
selector:
matchLabels:
app: jenkins
template:
metadata:
labels:
app: jenkins
spec:
containers:
- name: jenkins
image: jenkins/jenkins:lts-jdk11
ports:
- containerPort: 8080
volumeMounts:
- name: jenkins-home
mountPath: /var/jenkins_home
volumes:
- name: jenkins-home
emptyDir: { }
执行一下命令,在系统下的 jenkins 命名空间内安装 Jenkins
kubectl apply -f jenkins-deployment.yaml -n jenkins
-
授予jenkins服务的访问权限
-
准备jenkins-service.yaml文件, vim jenkins-service.yaml
apiVersion: v1 kind: Service metadata: name: jenkins spec: type: NodePort ports: - port: 8080 targetPort: 8080 selector: app: jenkins
执行命令创建服务
kubectl apply -f jenkins-service.yaml -n jenkins备注: 如果拉起的过程很慢,则使用kubectl describe 查看详情,如果显示正在拉取镜像,则有可能是镜像仓库访问困难,或者网络问题,则参考上一个步骤的解决方法,按照步骤操作之后,POD可以以非常快的速度拉起,大约在10秒之内
但是笔者在修改之后,出现了NODE不能ready的问题,于是又改了回来,就正常了