- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 3 节点 Kubernetes 集群,我已经使用 Cass-Operator 在其上设置了 Cassandra。我正在按照此处的说明进行操作 - https://github.com/datastax/cass-operator
下面命令输出中的2/2是什么意思
kubectl get all -n cass-operator
NAME READY STATUS RESTARTS AGE
pod/cass-operator-78c6469c6-6qhsb 1/1 Running 0 139m
pod/cluster1-dc1-default-sts-0 2/2 Running 0 138m
pod/cluster1-dc1-default-sts-1 2/2 Running 0 138m
pod/cluster1-dc1-default-sts-2 2/2 Running 0 138m
这是否意味着有 3 个数据中心,每个数据中心运行 2 个 cassandra 节点?应该是因为我的K8S集群只有3个节点。
manuchadha25@cloudshell:~ (copper-frame-262317)$ gcloud compute instances list
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS
gke-cassandra-cluster-default-pool-92d544da-6fq8 europe-west4-a n1-standard-1 10.164.0.26 34.91.214.233 RUNNING
gke-cassandra-cluster-default-pool-92d544da-g0b5 europe-west4-a n1-standard-1 10.164.0.25 34.91.101.218 RUNNING
gke-cassandra-cluster-default-pool-92d544da-l87v europe-west4-a n1-standard-1 10.164.0.27 34.91.86.10 RUNNING
或者 Cassandra-operator 是否在每个 K8S 节点上运行两个容器?</p>
最佳答案
当你在部署一些应用程序时,一个 pod 中可以有多个容器。如果你会检查Kubernetes Pod docs你可以找到 2 种类型:
运行单个容器的 Pod。
The "one-container-per-Pod" model is the most common Kubernetes use case; in this case, you can think of a Pod as a wrapper around a single container, and Kubernetes manages the Pods rather than the containers directly.
运行需要协同工作的多个容器的 Pod。
A Pod might encapsulate an application composed of multiple co-located containers that are tightly coupled and need to share resources. These co-located containers might form a single cohesive unit of service--one container serving files from a shared volume to the public, while a separate "sidecar" container refreshes or updates those files. The Pod wraps these containers and storage resources together as a single manageable entity.
您可以在 this docs 中找到更多信息.
Pod
如何配置带有 2 个容器的 YAML 可以找到 here .在 .spec.containers
中,您可以指定 2 个或更多容器。
我部署了这些 YAML。
$ kubectl get po -n cass-operator
NAME READY STATUS RESTARTS AGE
cass-operator-78c9999797-gb88g 1/1 Running 0 4m26s
cluster1-dc1-default-sts-0 2/2 Running 0 4m12s
cluster1-dc1-default-sts-1 2/2 Running 0 4m12s
cluster1-dc1-default-sts-2 2/2 Running 0 4m12s
现在你必须描述 pod。在我的示例中:
$ kubectl describe po cluster1-dc1-default-sts-0 -n cass-operator
在 Containers:
下,您可以找到图像、端口、状态、安装等详细信息。
Containers:
cassandra:
Container ID: docker://49b58eacc380da6c29928677e84082373d4330a91c29b29f3f3b021e43c21a38
Image: datastax/cassandra-mgmtapi-3_11_6:v0.1.5
Image ID: docker-pullable://datastax/cassandra-mgmtapi-3_11_6@sha256:aa7d6072607e60b1dfddd5877dcdf436660bacd31dd4aa6c8c2b85978c9fd170
....
server-system-logger:
Container ID: docker://d0b572e767236e2baab7b67d5ad0fc6656b862fc4e463aa1836de80d34f608ea
Image: busybox
Image ID: docker-pullable://busybox@sha256:2131f09e4044327fd101ca1fd4043e6f3ad921ae7ee901e9142e6e36b354a907
Port: <none>
所以这个 pod 运行 2 个容器
Cassandra
服务器系统记录器
当有 1/2
的 pod 时怎么办?
这意味着在这个特定的 pod
中只有 1 个容器正在running
。容器状态为 Waiting
、Running
和 Terminated
。更多信息你可以找到here .
用例?您可以查看指定容器的日志。
$ kubectl logs cluster1-dc1-default-sts-0 -n cass-operator -c cassandra
Starting Management API
/docker-entrypoint.sh: line 74: [: missing `]'
Running java -Xms128m -Xmx128m -jar /opt/mgmtapi/datastax-mgmtapi-server-0.1.0-SNAPSHOT.jar --cassandra-socket /tmp/cassandra.sock --host tcp://0.0.0.0:8080 --host file:///tmp/oss-mgmt.sock --explicit-start true --cassandra-home /var/lib/cassandra/
INFO [main] 2020-07-03 13:43:08,199 Cli.java:343 - Cassandra Version 3.11.6
INFO [main] 2020-07-03 13:43:08,709 ResteasyDeploymentImpl.java:551 - RESTEASY002225: Deploying javax.ws.rs.core.Application: class com.datastax.mgmtapi.ManagementApplication
...
或者
$ kubectl logs cluster1-dc1-default-sts-0 -n cass-operator -c server-system-logger
INFO [main] 2020-07-03 13:44:04,588 YamlConfigurationLoader.java:89 - Configuration location: file:/etc/cassandra/cassandra.yaml
INFO [main] 2020-07-03 13:44:06,137 Config.java:516 - Node configuration:[allocate_tokens_for_keyspace=null; authenticator=org.apache.cassandra.auth.PasswordAuthenticator; authorizer=org.apache.cassandra.auth.CassandraAuthorizer; auto_bootstrap=true; auto_snapshot=true;
...
你也可以获取这个 pod YAML 来验证。在此示例中,您可以通过以下方式执行此操作:
$ kubectl get po cluster1-dc1-default-sts-0 -n cass-operator -o yaml
作为您问题的补充:
或者 Cassandra-operator 是否在每个 K8S 节点上运行两个容器?</strong>
它在每个 pod 上运行两个容器。您可以通过以下方式检查哪个 pod 被调度到哪个节点:
$ kubectl get pods -n cass-operator -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
cass-operator-78c9999797-gb88g 1/1 Running 0 20m 10.44.1.4 gke-cluster-2-default-pool-5aa60336-n3hr <none> <none>
cluster1-dc1-default-sts-0 2/2 Running 0 19m 10.44.1.5 gke-cluster-2-default-pool-5aa60336-n3hr <none> <none>
cluster1-dc1-default-sts-1 2/2 Running 0 19m 10.44.2.3 gke-cluster-2-default-pool-5aa60336-dl2g <none> <none>
cluster1-dc1-default-sts-2 2/2 Running 0 19m 10.44.0.9 gke-cluster-2-default-pool-5aa60336-m7ms <none> <none>
关于google-kubernetes-engine - 2/2 在 kubectl get all -n cass-operator 的输出中意味着什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62713598/
我正在尝试执行类似于以下伪代码的操作。这是否违反使用嵌套类的任何规则或最佳实践? public class Foo{ private list1, list2; Bar bar = new B
我正在创建一个平台游戏,我试图通过为平台创建一个类来缩短我的代码。但是,我的代码无法运行,并且我不确定显示的错误是什么。 我的代码: import pygame,sys,time,random pyg
我有一个 3 节点 Kubernetes 集群,我已经使用 Cass-Operator 在其上设置了 Cassandra。我正在按照此处的说明进行操作 - https://github.com/dat
我目前遇到一个问题,我尝试从 cassandra 选择或插入特定的列数据并不断收到未定义的列名错误,尽管在查看表时列名是集群键。但是,其他列的行为正常。 keyspace_name | table_n
我是一名优秀的程序员,十分优秀!