0.cassandra.default.svc.cluster.local

nxagd54h  于 2021-06-15  发布在  Cassandra
关注(0)|答案(3)|浏览(430)

aws上的cassandra群集无法启动。误差如下。
信息[main]2018-10-11 08:11:42794数据库描述符。java:729 - 使用strategy org.apache.cassandra.net.ratebasedbackpressure{high\u ratio=0.9,factor=5,flow=fast}禁用背压。
警告[main]2018-10-11 08:11:42848 SimpledProvider。java:60 - 种子提供程序无法查找启动期间遇到的主机cassandra-0.cassandra.default.svc.cluster.local异常(org.apache.cassandra.exceptions.configurationexception):种子提供程序未列出任何种子。种子提供程序未列出任何种子。错误[main]2018-10-11 08:11:42851 Cassandrademon。java:708 - 启动期间遇到异常:种子提供程序未列出任何种子。
这是我的细节。

$kubectl get pods                                                                                                                                                                                   [13:48]
NAME          READY     STATUS             RESTARTS   AGE
cassandra-0   1/1       Running            0          19h
cassandra-1   0/1       CrashLoopBackOff   231        19h

$kubectl get services                                                                                                                                                                               [13:49]
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
cassandra    NodePort    100.69.201.208   <none>        9042:30000/TCP   1d
kubernetes   ClusterIP   100.64.0.1       <none>        443/TCP          15d

$kubectl get pvc                                                                                                                                                                                    [13:50]
NAME                            STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
cassandra-data-cassandra-0      Pending                                                                        fast           15d
cassandra-storage-cassandra-0   Bound     pvc-f3ff4203-c0a4-11e8-84a8-02c7556b5a4a   320Gi      RWO            gp2            15d
cassandra-storage-cassandra-1   Bound     pvc-1bc3f896-c0a5-11e8-84a8-02c7556b5a4a   320Gi      RWO            gp2            15d

$kubectl get namespaces                                                                                                                                                                             [13:53]
NAME          STATUS    AGE
default       Active    15d
kube-public   Active    15d
kube-system   Active    15d

即使是工作舱也没有装载存储。
在我试图改变之前,一切都很顺利 MAX_HEAP_SIZE 从1024米到2048米。
在那之后,即使我删除了所有旧的豆荚,服务和创建新的,但它仍然不起作用。

3npbholx

3npbholx1#

您正在使用nodeport类型。这不会使服务成为无头服务,这就是为什么pod的ip地址不能被解析的原因。
你需要做的是创建一个单独的无头服务。您还需要创建自己的docker映像,并在入口点中运行一个脚本,该脚本将获取服务域名的所有IP。
您可以以以下项目为例:https://github.com/vyshane/cassandra-kubernetes/

kb5ga3dv

kb5ga3dv2#

我试过西蒙的代码解决方案。但他给了我一个提示,那一定是无头服务。但是在我的例子中,我通过添加“clusterip:none”来创建headless服务。如果没有这一行,它将给出“seed provider cannot lookup host”。我找不到pod的dns(elassandra-0.elassandra.chargington.svc.cluster.local),但我可以找到服务的dns(elassandra.chargington.svc.cluster.local)。
有时您不需要或不想要负载平衡和单一服务ip。在这种情况下,您可以通过为集群ip(.spec.clusterip)指定“none”来创建“headless”服务。
https://kubernetes.io/docs/concepts/services-networking/service/
这是我的密码 apiVersion: v1 kind: Service metadata: labels: app: elassandra name: elassandra namespace: chargington spec: clusterIP: None ports: - name: cassandra port: 9042 - name: http port: 9200 - name: transport protocol: TCP port: 9300 selector: app: elassandra 在我的状态下我需要 serviceName: elassandra . 这对于将statefulset指向将为pod的dns名称管理域的服务是必要的。 --- apiVersion: "apps/v1beta1" kind: StatefulSet metadata: name: elassandra namespace: chargington spec: serviceName: elassandra replicas: 1 template: metadata: labels: app: elassandra spec: containers: - name: elassandra image: strapdata/elassandra:6.2.3.3 imagePullPolicy: IfNotPresent ports: - containerPort: 7000 name: intra-node - containerPort: 7001 name: tls-intra-node - containerPort: 7199 name: jmx - containerPort: 9042 name: cql - containerPort: 9200 name: http protocol: TCP - containerPort: 9300 name: transport protocol: TCP env: - name: CASSANDRA_SEEDS value: elassandra-0.elassandra.chargington.svc.cluster.local - name: MAX_HEAP_SIZE value: 256M - name: HEAP_NEWSIZE value: 100M - name: CASSANDRA_CLUSTER_NAME value: "Cassandra" - name: CASSANDRA_DC value: "DC1" - name: CASSANDRA_RACK value: "Rack1" - name: CASSANDRA_ENDPOINT_SNITCH value: GossipingPropertyFileSnitch volumeMounts: - name: elassandra-data mountPath: /opt/elassandra-5.5.0.8/data volumeClaimTemplates: - metadata: name: elassandra-data annotations: volume.beta.kubernetes.io/storage-class: "" spec: accessModes: ["ReadWriteOnce"] resources: requests: storage: 1Gi

368yc8dk

368yc8dk3#

如果其他任何人仍面临种子提供程序问题,则无法查找主机cassandra-0.cassandra.default.svc.cluster.local异常
对我来说,问题是域名。我已将种子配置为:

cassandra-0.cassandra.<my-kube-namespace>.svc.<kube-domain>

在我们公司,k8s集群是使用集群域部署的,而不是默认设置,所以我必须使用该域,它开始为我工作。
要了解域名,您可能需要联系您当地的kube管理员。

相关问题