apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: nexus
name: ssx-nexus-dm
namespace: ssx #这个是我自己创建的命名空间
spec:
replicas: 1
selector: #标签选择器,与上面的标签共同作用
matchLabels: #选择包含标签app:nexus的资源
app: nexus
template: #这是选择或创建的Pod的模板
metadata: #Pod的元数据
labels: #Pod的标签,上面的selector即选择包含标签app:nexus的Pod
app: nexus
spec: #期望Pod实现的功能(即在pod中部署)
containers: #生成container,与docker中的container是同一种
- name: ssx-nexus-c
image: node102:5000/ssx-nexus:v1.0 #这是我私有仓库 可以在此找合适的镜像包https://registry.hub.docker.com/r/sonatype/nexus3/tags
ports:
- containerPort: 8081 # 开启本容器的8081端口可访问
volumeMounts:
- mountPath: /nexus-data #这是nexus容器内保存数据的默认路径
name: c-v-path-nexus
volumes:
- name: c-v-path-nexus #和上面保持一致 这是本地的文件路径,上面是容器内部的路径
hostPath:
path: /root/apps/k8s/for_docker_volume/nexus #此路径需要事先创建 这是宿主机的路径 并且此路径需要添加访问权限,任何人都能访问 不然pod创建失败 chmod 777 -R *
nodeSelector: #把此pod部署到指定的node标签上
kubernetes.io/hostname: node101
---
apiVersion: v1
kind: Service
metadata:
labels:
app: nexus
name: ssx-nexus-sv
namespace: ssx
spec:
ports:
- port: 9000 #我暂时不理解,这个设置 明明没用到?
name: ssx-nexus-last
protocol: TCP
targetPort: 8081 # 容器nginx对外开放的端口 上面的dm已经指定了
nodePort: 30100 #外网访问的端口
selector:
app: nexus
type: NodePort
2. 执行kubectl命令进行创建启动
kubectl create -f ./刚刚创建的文件yaml
3. 等待完成 大概10分钟 如果还是没启动可以看下pod日志完成后访问:
http://node101:30100/



