Apache spark 如何在Kubernetes中对外公开状态集cassandra集群的无头服务

Apache spark 如何在Kubernetes中对外公开状态集cassandra集群的无头服务,apache-spark,cassandra,kubernetes,Apache Spark,Cassandra,Kubernetes,我正在kubernetes(Azure AKS)中设置多节点cassandra集群,因为这是一个无头服务,没有外部IP,具有完整的状态集POD。 如何将spark应用程序与kubernetes群集中的cassandra连接起来 我们已经尝试了集群ip,入口ip,但只有一个pod正在启动,其余的都失败了 我有3份舱单: 服务 持久卷目标 状态集 预期结果:(公共ip作为外部ip) dspg@Digiteds28:$kubectl获得svc 名称类型CLUSTER-IP外部IP端口年龄 kubern

我正在kubernetes(Azure AKS)中设置多节点cassandra集群,因为这是一个无头服务,没有外部IP,具有完整的状态集POD。 如何将spark应用程序与kubernetes群集中的cassandra连接起来

我们已经尝试了集群ip,入口ip,但只有一个pod正在启动,其余的都失败了

我有3份舱单:

  • 服务
  • 持久卷目标
  • 状态集
  • 预期结果:(公共ip作为外部ip)

    dspg@Digiteds28:$kubectl获得svc
    名称类型CLUSTER-IP外部IP端口年龄
    kubernetes ClusterIP 10.0.0.1 443/TCP 1h
    cassandra ClusterIP None 154.167.90.98 9042/TCP 1h
    dspg@Digiteds28:$kubectl获得吊舱
    名称就绪状态重新启动
    卡桑德拉-0 1/1运行0 59米
    卡桑德拉-1 1 1/1运行0 58米
    卡桑德拉-2 1/1运行0.56米
    
    实际产量:

    dspg@Digiteds28:$ kubectl get svc
    NAME                      TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)    AGE
    kubernetes                ClusterIP   10.0.0.1     <none>        443/TCP    1h
    cassandra                 ClusterIP   None         <none>        9042/TCP   1h
    
    
    
    dspg@Digiteds28:$ kubectl get pod
    NAME                READY   STATUS    RESTARTS   AGE
    cassandra-0         1/1     Running   0          59m
    cassandra-1         1/1     Running   0          58m
    cassandra-2         1/1     Running   0          56m
    
    dspg@Digiteds28:$kubectl获得svc
    名称类型CLUSTER-IP外部IP端口年龄
    kubernetes ClusterIP 10.0.0.1 443/TCP 1h
    cassandra ClusterIP None 9042/TCP 1h
    dspg@Digiteds28:$kubectl获得吊舱
    名称就绪状态重新启动
    卡桑德拉-0 1/1运行0 59米
    卡桑德拉-1 1 1/1运行0 58米
    卡桑德拉-2 1/1运行0.56米
    

    现在,这不包括连接到应用程序的外部IP。

    这取决于您正试图做什么。如果您需要外部IP,则通常需要创建一个额外的服务对象(可能是
    类型:LoadBalancer
    ),如下所示:

    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: cassandra
      name: cassandra-ext
    spec:
      type: LoadBalancer
      ports:
        - port: 9042
      selector:
        app: cassandra
    
    如果需要从集群内访问它,则使用另一个pod中的DNS名称
    cassandra-0.cassandra.default
    (如果StatefulSet部署在默认命名空间中)


    使用附加服务为我提供了一个外部IP,因为如果我开始将spark或devcenter应用程序连接到cassandra cluster。

    您好,如果您已经有一个公共IP,那么您可以使用上述推荐的externalIP服务字段创建一个附加服务,为我工作。非常有帮助的朋友。非常感谢。我可以使用默认的存储类挂载cassandra数据文件夹,但我需要使用Azure文件共享在其中查找困难。{link}()
    dspg@Digiteds28:$ kubectl get svc
    NAME                      TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)    AGE
    kubernetes                ClusterIP   10.0.0.1     <none>        443/TCP    1h
    cassandra                 ClusterIP   None         <none>        9042/TCP   1h
    
    
    
    dspg@Digiteds28:$ kubectl get pod
    NAME                READY   STATUS    RESTARTS   AGE
    cassandra-0         1/1     Running   0          59m
    cassandra-1         1/1     Running   0          58m
    cassandra-2         1/1     Running   0          56m
    
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: cassandra
      name: cassandra-ext
    spec:
      type: LoadBalancer
      ports:
        - port: 9042
      selector:
        app: cassandra
    
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: cassandra
      name: cassandra-ext
    spec:
      type: LoadBalancer
      ports:
        - port: 9042
      selector:
        app: cassandra