一、语法冲突问题
如Kubernetes允许labels中出现“.”分隔符.
apiVersion: v1
kind: Node
metadata:
annotations:
node.alpha.kubernetes.io/ttl: "0"
creationTimestamp: "2021-08-24T08:34:19Z"
labels:
beta.kubernetes.io/arch: arm64
beta.kubernetes.io/os: linux
kubernetes.io/arch: arm64
kubernetes.io/hostname: ubuntu
kubernetes.io/type: edge
node-role.kubernetes.io/agent: ""
node-role.kubernetes.io/edge: ""
在[datafrk](https://github.com/kubesys/datafrk)设计过程中,“.”表示Json路径,则metadata.labels.beta.kubernetes.io/arch会被解析成
apiVersion: v1
kind: Node
metadata:
annotations:
node.alpha.kubernetes.io/ttl: "0"
creationTimestamp: "2021-08-24T08:34:19Z"
labels:
beta:
kubernetes
io/arch: arm64
为了避免该问题,再请求参数时,将“.”分隔符转化为"#"分隔符,即写成metadata.labels.beta#kubernetes#io/arch,实际查询过程会重新转化为metadata.labels.beta#kubernetesmetadata.labels.beta.kubernetes.io/arch