kubernetes Pod无法连接到Cisco Packet Tracer API

osh3o9ms  于 2024-01-07  发布在  Kubernetes
关注(0)|答案(1)|浏览(207)

我是kubernetes的新手。我在kubernetes中连接Cisco SDN网络控制器到pod时遇到问题。我的系统是:
1.在Cisco Packet Tracer中运行的SDN。它在端口58000上打开API
1.用于运行解决方案的Docker镜像。此应用程序访问API端口58000以从SDN检索数据

  1. Kubernetes
    1.融合Kafka云
    当我在Docker上部署容器镜像时,应用程序能够连接到API端口58000。
  1. docker run -d --net='host' --env RUNTYPE=-1 --env BROKERHOSTPORT=pkc-lzvrd.us-west4.gcp.confluent.cloud:9092 --env KAFKAPRODUCETOPIC=cisco-topic --env CLOUDUSERNAME=user --env CLOUDPASSWORD=api_key dockerhubaccount/cisco-app

字符串
但是,当我通过kubernetes部署yml文件时,pod无法连接到API,因为连接被拒绝。下面是我的yml:apiVersion:apps/v1 kind:Deployment metadata:name:Cisco spec:selector:matchLabels:app:Cisco replicas:1 #告诉部署运行2个匹配模板模板的pod:metadata:labels:app:Cisco spec:hostNetwork:true #与主机容器共享网络:- name:Cisco镜像:dockerhubaccount/cisco-app ports:- containerPort:58000 env:- 姓名:RUNTYPE值:“-1”- name:BROKERHOSTPORT值:“pkc-lzvrd.us-west4.gcp.confluent.cloud:9092”-名称:CLOUDUSERNAME值:“username”-名称:CLOUDPASSWORD值:“API_key”-名称:KAFKAPRODUCETOPIC值:“cisco-app”
我尝试运行kubectl port-forward,但它不起作用。Kafka Cloud在两种模式下都可以访问。所以我认为当容器内运行的python脚本尝试从pod调用localhost时会出现问题。下面是用于调用API端口58000的python脚本

通过58000端口登录Packet Tracer SDN

def login(session):headers = { 'Content-Type':'application/json',}

  1. json_data = {
  2. 'username': 'user',
  3. 'password': 'pass!',
  4. }
  5. try:
  6. response = session.post('http://localhost:58000/api/v1/ticket', headers=headers, json=json_data)
  7. except Exception as e:
  8. print("ERROR: Make sure packet tracer is running:", e)
  9. return ""


我做了很多关于kubernetes网络的研究,但它不工作。你能帮我解决吗?
谢谢

xv8emn3q

xv8emn3q1#

我发现这个问题来自minikube.它不允许pod访问应用程序绑定只到localhost(127.0.0.1)https://minikube.sigs.k8s.io/docs/handbook/host-access/谢谢

相关问题