我试图做https://hub.helm.sh/charts/jetstack/cert-manager提到的先决条件

$ kubectl apply \
    -f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.11/deploy/manifests/00-

我试图找出kubectl apply做,因为我加入了与K8S已经投入运行,因此其没有太大的基本知识的项目。

https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#apply

该指南说:

适用于pod.json配置到吊舱。

kubectl apply -f ./pod.json

但我不明白为什么在这个命令中没有目标被提及。我希望是这样的:

kubectl apply -f ./pod.json application-pod-01

但无处是所提到的文件中,这个命令apply一个明确的目标。我相信我在这里缺少一个重要的概念,但是不能被读取了文档看着办吧。

分析解答

所述kubernetes API中的每个对象具有名称空间和一个名称(如果命名空间留出了定义,它默认为default的),在ObjectMetaData定义。

在YAML文件,你会看到以下内容:

apiVersion: v1
kind: Pod
metadata:
  name: application-pod
  namespace: my-namespace

名称和命名空间的组合uniquily识别对象Kubernetes,并允许kubernetes找对象(例如pod-01)的具体实例,并对其进行更新(最有可能的创建对象的新实例,例如pod-02)。