此要求主要是针对开发环境。

当我更新用于通过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/

10-12 23:37