Kubernetes 如何阅读&;是否使用yq修改Kube清单值?

Kubernetes 如何阅读&;是否使用yq修改Kube清单值?,kubernetes,kubectl,yq,Kubernetes,Kubectl,Yq,我有一个Kube清单,需要应用于两个具有不同资源设置的kubernetes集群。为此,我需要动态更改此文件的资源部分。内容如下: apiVersion: v1 kind: Service metadata: name: abc-api labels: app: abc-api spec: ports: - name: http port: 80 targetPort: 3000 - name: https port: 3000 targ

我有一个Kube清单,需要应用于两个具有不同资源设置的kubernetes集群。为此,我需要动态更改此文件的资源部分。内容如下:

apiVersion: v1
kind: Service
metadata:
  name: abc-api
  labels:
    app: abc-api
spec:
  ports:
  - name: http
    port: 80
    targetPort: 3000
  - name: https
    port: 3000
    targetPort: 3000
  selector:
    app: abc-api
    tier: frontend
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: abc-api
  labels:
    app: abc-api
spec:
  selector:
    matchLabels:
      app: abc-api
      tier: frontend
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: abc-api
        tier: frontend
    spec:
      containers:
      - image: ABC_IMAGE
        resources:
          requests:
            memory: "128Mi"
            cpu: .30
          limits:
            memory: "512Mi"
            cpu: .99
我搜索发现yq是一个更好的工具。但是,当我从这个文件中读取值时,它只显示到带有'3破折号'的行:没有超过该值的值

# yq r worker/deployment.yaml 
apiVersion: v1
kind: Service
metadata:
  name: hometales-api
  labels:
    app: hometales-api
spec:
  ports:
  - name: http
    port: 80
    targetPort: 3000
  - name: https
    port: 3000
    targetPort: 3000
  selector:
    app: hometales-api
    tier: frontend
我想阅读部署部分,以及编辑资源值

第节内容如下:

---
apiVersion: apps/v1
kind: Deployment
metadata:

....
要编辑的部分:

resources:
  requests:
    memory: "128Mi"
    cpu: .20
  limits:
    memory: "512Mi"
    cpu: .99
那么,问题的第一部分:在第二个3-破折号实例之后如何阅读? Q的第二部分:如何动态编辑资源值

我可以运行此命令并读取此部分,但无法进一步读取内存或cpu值:

# yq r -d1 deployment.yaml "spec.template.spec.containers[0].resources.requests"
memory: "128Mi"
cpu: .20

使用
-d
CLI选项。有关更多详细信息,请参阅


此外,Kubernetes在
kubectl补丁中也有自己的功能

使用
-d
CLI选项。有关更多详细信息,请参阅


另外,Kubernetes在
kubectl补丁中也有自己的功能

好吧,我使用这个命令读取资源
yq r-d1 deployment.yaml“resources.limit.memory”
,但它不返回任何值。如何读取资源值?您需要查看实际的数据结构。查看file.ok我使用此命令读取resources
yq r-d1 deployment.yaml“resources.limit.memory”
,但它不返回任何值。如何读取资源值?您需要查看实际的数据结构。查一下档案。