kubernetes pod 与外部端点通信的问题(休息服务、sql 服务器、kafka、redis 等...)

Problems to communicate kubernetes pod with external endpoints (rest services, sql server, kafka, redis etc...)

我有一个只有一个节点的 kubernetes 集群。我有 java 服务 dockerized 可以访问休息服务、sql 服务器、kafka 和 kubernetes 集群之外但在同一个 google 云网络中的另一个端点。

我寻求帮助的主要原因是我无法将 pod 内 dockerized 的 java 服务连接到前面提到的外部端点。

我之前尝试过使用 flannel 网络,但现在我重置了集群并安装了 calico 网络,但没有得到积极的结果。

默认情况下 运行 的

Pods:

集群节点:

我部署了一些 java 服务 dockerized 作为 cronjobs,其他作为部署。为了将此 cronjobs 或部署与 Kafka、Sql 服务器等外部端点进行通信,我使用服务。

每个例子: 定时作业:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
   name: cronjob-name
spec:
  schedule: "*/5 * * * *"
  jobTemplate:
    spec:
      template:
        metadata:
          labels:
            cronjob1: cronjob-name
        spec:
          containers:
            - image: repository/repository-name:service-name:version
              imagePullPolicy: ""
              name: service-name
              resources: {}
          restartPolicy: OnFailure
  selector:
    matchLabels:
      cronjob1: cronjob-name

部署:

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    deployment1: deployment_name
  name: deployment_name
spec:
  replicas: 1
  selector:
    matchLabels:
      deployment1: deployment_name
  strategy: {}
  template:
    metadata:
      labels:
        deployment1: deployment_name
    spec:
      containers:
      - image: repository/repository-name:service-name:version
        imagePullPolicy: ""
        name: service-name
        resources: {}
      imagePullSecrets:
       - name: dockerhub
      restartPolicy: Always
      serviceAccountName: ""
      volumes: null
status: {}

服务:

apiVersion: v1
kind: Service
metadata:
  name: sqlserver
spec:
  type: ClusterIP
  selector:
    cronjob1: cronjob1
    deployment1: deployment1
  ports:
    - protocol: TCP
      port: 1433
      targetPort: 1433

我的问题是我无法从 java 服务连接到 Sql 服务器实例。我已经验证了 DNS 和 calico pods 日志并且没有错误。我尝试通过 ssh 连接到 pods 而它是 运行 并且从 pod 内部我不能 telnet 到 Sql 服务器实例。

¿你能给我一些关于问题的想法吗?或者我可以做什么测试?

¡非常感谢!

我再次解决了配置 Kubernetes 集群的问题,但使用 calico 而不是 fannel.Thanks 进行回复。我希望这对其他人有帮助。