我正在尝试使用Prodigy UI工具创建用于创建训练数据集的服务。我想使用在Azure云中运行的Kubernetes集群来执行此操作。我的Prodigy UI应该在0.0.0.0:8880(在容器上)可以访问。
因此,我按如下方式创建了部署:
kind: Deployment
apiVersion: apps/v1beta2
metadata:
name: prodigy-dply
spec:
replicas: 1
selector:
matchLabels:
app: prodigy_pod
template:
metadata:
labels:
app: prodigy_pod
spec:
containers:
- name: prodigy-sentiment
image: bdsdev.azurecr.io/prodigy
imagePullPolicy: IfNotPresent
command: ["/bin/bash"]
args: ["-c", "prodigy spacy textapi -F training_recipe.py"]
ports:
- name: prodigyport
containerPort: 8880
这应该(应该是这里的操作词)暴露pod级别的8880端口别名为prodigyport
之后,我创建了一个Service
,如下所示:
kind: Service
apiVersion: v1
metadata:
name: prodigy-service
spec:
type: LoadBalancer
selector:
app: prodigy_pod
ports:
- protocol: TCP
port: 8000
targetPort: prodigyport
此时,当我运行关联的kubectl create -f <deployment>.yaml
和kubectl create -f <service>.yaml
时,我会收到ExternalIP
并关联的端口:10.*.*.*:34672
。
这是浏览器无法访问的,我假设我误解了我的浏览器将如何与此服务,Pod和底层Container进行交互。我在这里缺少什么?
注意:我愿意接受kubernetes可能不是这里工作的工具,因为易于扩展和更新图像以反映更新的配置,它似乎很诱人
答案 0 :(得分:1)
您可以使用以下命令找到公共IP地址(LoadBalancer Ingress):
kubectl get service azure-vote-front
结果如下:
root@k8s-master-79E9CFFD-0:~# kubectl get service azure
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
azure 10.0.136.182 52.224.219.190 8080:31419/TCP 10m
然后您可以使用外部IP 和端口浏览它,如下所示:
curl 52.224.219.190:8080
您还可以通过Azure门户找到Load Balaner规则:
希望这有帮助。
答案 1 :(得分:0)
您可以通过kubectl获取服务信息,找到为您的服务创建的IP地址:
kubectl describe services prodigy-service
IP地址列在LoadBalancer Ingress旁边。
此外,您可以使用端口转发来访问您的广告连接:
kubectl port-forward <pod_name> 8880:8880
之后,您可以在浏览器中通过localhost:8880
访问Prodigy UI。