什么是 kubernetes 中的 kind:test

What is kind:test in kubernetes

我的一个使用 kubernetes 管理容器的项目有一个叫做 test 的东西。开发人员定义连接的位置。

我试图在互联网上搜索它,但没有找到任何可以清除它的东西。

有人可以帮助我理解 test.yml 中的这种类型和连通性吗?

kind: test
spec:
   connectivity:
      to:
      from

这就是我们所说的在 kubernetes 世界中创建 CustomResourceDefinition (CRD).

Read the docs : Using Custom Resources for clarity.

kind: Test 是自定义资源 (CR)。 applying a CustomResourceDefinition (CRD) that describes all the fields.

后可以在集群中使用 CR

通过这样做,您可以使用可以使用的新对象扩展 Kubernetes。如果你想write your own operator or controller,这很有用。 没有 operator/controller,CR 就是 什么都不做 。它只会保存一些您可以查找的信息(类似于 ConfigMap),但不会执行任何操作。

这里解释了 Kubernetes 如何为 Deployment 等内置对象工作:

  1. 您使用kubectl apply -f some-deployment.yaml
  2. 您的调用将被发送到 kube-apiserver
  3. kube-apiserver 会在 etcd
  4. 中保存 Deployment 的信息(namereplicasimage 要使用,...)
  5. kube-controller-manager 持续与 kube-apiserver 通信,并要求他向他显示有关部署的所有信息。
  6. kube-apiserver 从 etcd 检索信息并将其发送回 kube-controller-manager
  7. kube-controller-manager 看到有一个新部署(您应用的部署),现在将继续创建 Pods(以及之前的 ReplicaSet)。

如您所见,实际上 创建的 Pods 是 kube-controller-manager。

如果 kube-controller-manager 不支持您期望从 Kubernetes 获得的所有功能,您可以创建自己的控制器,using the operator SDK 将其称为操作员。然后您的操作员可以查看您将创建为 CustomResource 的所有对象(例如 Test)。

要检查您在集群上应用的所有 CRD,请执行:

$ kubectl get crd

要获取可应用于 Kubernetes 的 所有 对象的列表,请执行以下操作:

$ kubectl api-resources