如何使用暴露两个端口的kubectl创建Kubernetes服务

时间:2017-08-10 18:51:22

标签: kubernetes

我在Kubernetes部署了一个jenkins。现在我想在replicaset上面创建一个服务:

kubectl expose rs jenkins-xxx   --port=8080 --target-port=8080 --name=jenkins --namespace=ci

这很好用。 service-ip:8080正在重定向到pod:8080。但我想在同一服务中公开5000,以便service-ip相同?我的kubectl命令将如何?我想用kubectl

这样做

2 个答案:

答案 0 :(得分:3)

如果您的Pod公开了多个端口,则可以使用kubectl expose而不使用任何--port--target-port参数将其全部公开(例如8080-> 8080和5000-> 5000)

kubectl expose rs jenkins-xxx --name=jenkins --namespace=ci

如果您在Pod上指定了超过这两个端口并且只想公开这两个端口,那么您将无法使用kubectl expose并且您必须创建Service清单和{ {1}}它。

答案 1 :(得分:0)

将此yaml声明放在文件“your-service.yaml”

apiVersion: v1
kind: Service
metadata:
  labels:
    app: your-app
  name: your-service
spec:
  type: LoadBalancer
  loadBalancerSourceRanges:
  - 10.0.0.8/32
  ports:
    - name: some-endpoint-name
      nodePort: 30100
      port: 8081
      targetPort: 8081
    - name: another-endpoint-name
      nodePort: 30101
      port: 8082
      targetPort: 8082
  selector:
    app: your-app

从同一个文件夹运行:

kubectl create -f your-service.yaml