我想通过selenium hub和chrome节点容器在kubernetes上运行我的自动化测试脚本。 我的测试脚本也是一个容器的形式,并作为pod运行。 我的测试脚本使用localhost:4444连接到网格。 但网格的NodePort为31376,并且每次创建新的selenium网格服务时它都会不断变化。
有什么方法可以为我的selenium hub保留一个常量NodePort,以便我的脚本可以运行。
硒中心服务:
apiVersion: v1
kind: Service
metadata:
name: selenium-hub
labels:
app: selenium-hub
spec:
ports:
- port: 4444
targetPort: 4444
name: port0
selector:
app: selenium-hub
type: NodePort
sessionAffinity: None
每次执行命令时,我都不想更改指向selenium hub的链接。
这是我的服务说明: -
C:\KUBE>kubectl describe service selenium-hub
Name: selenium-hub
Namespace: default
Labels: app=selenium-hub
Annotations: <none>
Selector: app=selenium-hub
Type: NodePort
IP: 10.106.49.182
Port: port0 4444/TCP
TargetPort: 4444/TCP
NodePort: port0 31376/TCP
Endpoints:
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
感谢。
答案 0 :(得分:0)
根据the documentation on NodePort
services
如果需要特定的端口号,可以在nodePort字段中指定一个值,系统将为您分配该端口,否则API事务将失败(即您需要自己处理可能的端口冲突)。您指定的值必须在节点端口的配置范围内。
Here is an example,在您的情况下看起来像
apiVersion: v1
kind: Service
metadata:
name: selenium-hub
labels:
app: selenium-hub
spec:
ports:
- port: 4444
targetPort: 4444
name: port0
nodeport: <your-desired-port>
selector:
app: selenium-hub
type: NodePort
sessionAffinity: None