从命令式命令制作清单文件

Make manifest file from imperative command

我正在阅读 k8s 它有 2 种使用方法。两者是互补的

今天我尝试了一个功能来获取声明(清单文件)。

假设我创建 namespace 个实例

$ kubectl create namespace cert-manager
namespace/cert-manager created

那我导出manifest文件,下次使用声明方式

kubectl get namespace cert-manager -o yaml --export > cert-manager.yaml

cert-manager.yaml

apiVersion: v1
kind: Namespace
metadata:
  creationTimestamp: null
  name: cert-manager
  selfLink: /api/v1/namespaces/cert-manager
spec:
  finalizers:
  - kubernetes
status:
  phase: Active

与其他例子比较

apiVersion: v1
kind: Namespace
metadata:
  name: nginx-ingress

问题

第二个较短的清单文件是否正确完成?

是的,您的第二个清单文件是正确的。

spec 描述了您想要的对象状态——您希望对象具有的特征。 status描述了对象的实际状态,由Kubernetes系统提供和更新。

Namespace 对象只有一个可选字段 finalizers,它允许 observables 在命名空间被删除时清除资源。

所以,最简单的namespace manifest file如下:

apiVersion: v1
kind: Namespace
metadata:
  name: <namespace-name>