此要求主要是针对开发环境。
当我更新用于通过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'
最佳答案
您可以通过创建类型NodePort的service并在该.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
关于docker - 在Minikube中创建部署时指定nodeport,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42896718/