合并 kubeconfig JSON 和 YAML
Merging kubeconfig JSON and YAML
我有两个 kubeconfigs 文件,第一个是我用来与集群通信的文件,第二个是 JSON 格式的 Aquasec。我怎样才能合并这两个?
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://656835E69F31E2933asdAFAKE3F5904sadFDDC112dsasa7.yld432.eu-west-2.eks.amazonaws.com
name: arn:aws:eks:eu-west-2:test651666:cluster/Magento
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://kubernetes.docker.internal:6443
name: docker-desktop
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://192.142.242.111:6443
name: kubernetes
contexts:
- context:
cluster: arn:aws:eks:eu-west-2:test651666:cluster/testing
user: arn:aws:eks:eu-west-2:test651666:cluster/testing
name: arn:aws:eks:eu-west-2:test651666:cluster/testing
- context:
cluster: docker-desktop
user: docker-desktop
name: docker-desktop
- context:
cluster: docker-desktop
user: docker-desktop
name: docker-for-desktop
- context:
cluster: kubernetes
user: kubernetes-admin
name: kubernetes-admin@kubernetes
current-context: arn:aws:eks:eu-west-2:test651666:cluster/testing
kind: Config
preferences: {}
users:
- name: arn:aws:eks:eu-west-2:test651666:cluster/testing
您可以将 KUBECONFIG
环境变量设置为由 :
分隔的多个配置文件,kubectl 将在后台自动合并它们。
例如:
export KUBECONFIG=config:my-config.json
在上面的导出中,config
是 ~/.kube
中包含的默认配置文件,my-config.json
是您的第二个配置文件,您说它在 JSON 中格式。
您可以使用此命令查看合并后的配置,它显示了 kubectl 当前使用的配置的统一视图:
kubectl config view
因为 kubectl 会自动合并多个配置,所以您不需要将合并的配置保存到文件中。但是如果你真的想这样做,你可以重定向输出,像这样:
kubectl config view > merged-config.yaml
编辑:如果你想将合并的输出保存到它自己的文件中,显然你需要使用 --flatten,所以它会是这样的:
kubectl config view --flatten > merged-config.yaml
查看 Mastering the KUBECONFIG file, Organizing Cluster Access Using kubeconfig Files 以获得更多解释并查看一些其他示例。
我有两个 kubeconfigs 文件,第一个是我用来与集群通信的文件,第二个是 JSON 格式的 Aquasec。我怎样才能合并这两个?
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://656835E69F31E2933asdAFAKE3F5904sadFDDC112dsasa7.yld432.eu-west-2.eks.amazonaws.com
name: arn:aws:eks:eu-west-2:test651666:cluster/Magento
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://kubernetes.docker.internal:6443
name: docker-desktop
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://192.142.242.111:6443
name: kubernetes
contexts:
- context:
cluster: arn:aws:eks:eu-west-2:test651666:cluster/testing
user: arn:aws:eks:eu-west-2:test651666:cluster/testing
name: arn:aws:eks:eu-west-2:test651666:cluster/testing
- context:
cluster: docker-desktop
user: docker-desktop
name: docker-desktop
- context:
cluster: docker-desktop
user: docker-desktop
name: docker-for-desktop
- context:
cluster: kubernetes
user: kubernetes-admin
name: kubernetes-admin@kubernetes
current-context: arn:aws:eks:eu-west-2:test651666:cluster/testing
kind: Config
preferences: {}
users:
- name: arn:aws:eks:eu-west-2:test651666:cluster/testing
您可以将 KUBECONFIG
环境变量设置为由 :
分隔的多个配置文件,kubectl 将在后台自动合并它们。
例如:
export KUBECONFIG=config:my-config.json
在上面的导出中,config
是 ~/.kube
中包含的默认配置文件,my-config.json
是您的第二个配置文件,您说它在 JSON 中格式。
您可以使用此命令查看合并后的配置,它显示了 kubectl 当前使用的配置的统一视图:
kubectl config view
因为 kubectl 会自动合并多个配置,所以您不需要将合并的配置保存到文件中。但是如果你真的想这样做,你可以重定向输出,像这样:
kubectl config view > merged-config.yaml
编辑:如果你想将合并的输出保存到它自己的文件中,显然你需要使用 --flatten,所以它会是这样的:
kubectl config view --flatten > merged-config.yaml
查看 Mastering the KUBECONFIG file, Organizing Cluster Access Using kubeconfig Files 以获得更多解释并查看一些其他示例。