在 Minikube 中创建部署时指定节点端口
Specify nodeport when creating deployment in Minikube
此要求主要针对开发环境。
当我更新一个 docker 图像时,通过 Minikube 创建和公开一个部署,我必须删除并重新创建这个部署和服务。
但是,我想维护分配给该特定服务的相同节点端口。我知道如果留给 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 创建和公开一个部署,我必须删除并重新创建这个部署和服务。 但是,我想维护分配给该特定服务的相同节点端口。我知道如果留给 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