此要求主要用于开发环境。
当我更新用于创建部署并通过Minikube公开部署的docker镜像时,我必须删除并重新创建此部署和服务。 但是,我想维护分配给该特定服务的相同节点端口。我知道如果留给Minikube,会分配一个随机端口。但我可以指定NodePort吗?
我使用以下Yaml文件创建部署,并通过expose
命令公开服务。
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: dpl_name
spec:
template:
metadata:
labels:
app: app_name
spec:
containers:
- name: ctr_name
image: 192.168.42.22:80/imagename:latest
ports:
- containerPort: 8090
volumeMounts:
- mountPath: /var/containerdata
name: vlm
volumes:
- name: vlm
hostPath:
path: '/data/vlm'
答案 0 :(得分:2)
您可以通过创建service类型的NodePort并在该.yaml配置中指定nodePort
值来公开部署:
kind: Service
apiVersion: v1
metadata:
name: app_name
labels:
app: app_name
spec:
type: NodePort
ports:
- port: 80
targetPort: 8090
nodePort: 30000 # <--
selector:
app: app_name
这将指定始终使用nodePort
值:30000