我在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
答案 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