在 Kubernetes Pod 中访问 Prodigy UI
Access Prodigy UI in Kubernetes Pod
我正在尝试使用 Prodigy UI 工具创建用于创建训练数据集的服务。我想使用 Azure 云中 运行ning 的 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
这应该(应该是这里的操作词)在别名为 prodigyport
的 pod 级别公开 8880 端口
之后,我创建了一个 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 和底层容器交互有误解。我在这里错过了什么?
注意:我愿意接受 kubernetes 可能不是这里工作的工具,它看起来很诱人,因为易于扩展和更新图像以反映更新的配置
您可以通过kubectl获取服务信息,找到为您的服务创建的IP地址:
kubectl describe services prodigy-service
IP 地址列在 LoadBalancer Ingress 旁边。
此外,您可以使用端口转发来访问您的 pod:
kubectl port-forward <pod_name> 8880:8880
之后您可以在浏览器中通过 localhost:8880
访问 Prodigy UI。
您可以使用此命令找到 public 个 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 规则:
希望这对您有所帮助。
我正在尝试使用 Prodigy UI 工具创建用于创建训练数据集的服务。我想使用 Azure 云中 运行ning 的 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
这应该(应该是这里的操作词)在别名为 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 和底层容器交互有误解。我在这里错过了什么?
注意:我愿意接受 kubernetes 可能不是这里工作的工具,它看起来很诱人,因为易于扩展和更新图像以反映更新的配置
您可以通过kubectl获取服务信息,找到为您的服务创建的IP地址:
kubectl describe services prodigy-service
IP 地址列在 LoadBalancer Ingress 旁边。
此外,您可以使用端口转发来访问您的 pod:
kubectl port-forward <pod_name> 8880:8880
之后您可以在浏览器中通过 localhost:8880
访问 Prodigy UI。
您可以使用此命令找到 public 个 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 规则:
希望这对您有所帮助。