Kubernetes 如何阅读&;是否使用yq修改Kube清单值?
我有一个Kube清单,需要应用于两个具有不同资源设置的kubernetes集群。为此,我需要动态更改此文件的资源部分。内容如下: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
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我使用此命令读取resourcesyq r-d1 deployment.yaml“resources.limit.memory”
,但它不返回任何值。如何读取资源值?您需要查看实际的数据结构。查一下档案。