【发布时间】:2021-10-08 13:46:00
【问题描述】:
我需要从命令行使用选择器作为 NodePort 服务来公开 pod。可以有一个或多个豆荚。并且服务需要在 Pod 来来去去时动态地包含它们。例如,
NAMESPACE NAME READY STATUS RESTARTS AGE
rakesh rakesh-pod1 1/1 Running 0 4d18h
rakesh rakesh-pod2 1/1 Running 0 4d18h
我可以创建一个服务,使用服务定义 yaml 文件选择我想要的 pod -
apiVersion: v1
kind: Service
metadata:
name: np-service
namespace: rakesh
spec:
type: NodePort
ports:
- name: port1
port: 30005
targetPort: 30005
nodePort: 30005
selector:
abc.property: rakesh
但是,我需要通过命令行实现相同的目的。我尝试了以下 -
kubectl -n rakesh expose pod --selector="abc.property: rakesh" --port=30005 --target-port=30005 --name=np-service --type=NodePort
以及其他一些没有成功的变体。
注意:据我所知,目前无法使用命令行指定节点端口。随机端口分配在 30000-32767 之间。我对此很好,因为我可以稍后将其修补到所需的端口。
另请注意:不幸的是,这些 pod 不是部署的一部分。否则,expose deployment 可能会起作用。
因此,归结为基于选择器选择 pod 并将它们作为服务公开。
我的kubernetes 版本:1.12.5 上游
我的kubectl 版本:1.12.5 上游
【问题讨论】:
标签: kubernetes kubectl