apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: jenkins
name: ssx-jenkins-dm
namespace: ssx
spec:
replicas: 1
selector: #标签选择器,与上面的标签共同作用
matchLabels: #选择包含标签app:mysql的资源
app: jenkins
template: #这是选择或创建的Pod的模板
metadata: #Pod的元数据
labels: #Pod的标签,上面的selector即选择包含标签app:mysql的Pod
app: jenkins
spec: #期望Pod实现的功能(即在pod中部署)
containers: #生成container,与docker中的container是同一种
- name: ssx-jenkins-c
image: node102:5000/ssx-jenkins:v1.0
ports:
- containerPort: 8080 # 开启本容器的80端口可访问
volumeMounts:
- mountPath: /var/jenkins_home #这是mysql容器内保存数据的默认路径
name: c-v-path-jenkins
volumes:
- name: c-v-path-jenkins #和上面保持一致 这是本地的文件路径,上面是容器内部的路径
hostPath:
path: /root/apps/k8s/for_docker_volume/jenkins #此路径需要实现创建 注意要给此路径授权777权限 不然pod访问不到
nodeSelector: #把此pod部署到指定的node标签上
kubernetes.io/hostname: node101
---
apiVersion: v1
kind: Service
metadata:
labels:
app: jenkins
name: ssx-jenkins-sv
namespace: ssx
spec:
ports:
- port: 9000 #我暂时不理解,这个设置 明明没用到?
name: ssx-jenkins-last
protocol: TCP
targetPort: 8080 # 容器nginx对外开放的端口 上面的dm已经指定了
nodePort: 30200 #外网访问的端口
selector:
app: jenkins
type: NodePort