gpt4 book ai didi

kubernetes - kubernetes 命名空间中部署定义的唯一性

转载 作者:行者123 更新时间:2023-12-04 16:59:51 31 4
gpt4 key购买 nike

我们有多个环境,如 dev、qa、prepod 等。我们有基于环境的命名空间。现在我们将服务命名为 environment 作为后缀。例如。,

    apiVersion: apps/v1
kind: Deployment
metadata:
name: k8s-order-service-develop-deployment
namespace: dev
labels:
k8s-app: k8s-order-service-develop
spec:
selector:
matchLabels:
k8s-app: k8s-order-service-develop

相反,我可以在所有命名空间中使用以下内容吗?即是否 deployment每个命名空间是唯一的吗?

在开发环境中:
    apiVersion: apps/v1
kind: Deployment
metadata:
name: k8s-order-service-deployment
namespace: dev
labels:
k8s-app: k8s-order-service
spec:
selector:
matchLabels:
k8s-app: k8s-order-service

在 qa 环境中:
apiVersion: apps/v1
kind: Deployment
metadata:
name: k8s-order-service-deployment
namespace: qa
labels:
k8s-app: k8s-order-service
spec:
selector:
matchLabels:
k8s-app: k8s-order-service

最佳答案

从部署定义中删除命名空间并将其命名为 deploy.yaml

 apiVersion: apps/v1
kind: Deployment
metadata:
name: k8s-order-service-develop-deployment
labels:
k8s-app: k8s-order-service-develop
spec:
selector:
matchLabels:
k8s-app: k8s-order-service-develop

然后您可以使用以下命令将其部署在特定的命名空间中
kubectl create -f deploy.yaml -n <namespace-name>

ex:
kubectl create -f deploy.yaml -n dev
kubectl create -f deploy.yaml -n qa

你可以看看 kustomize更多选择和灵活性

这样您就可以为不同的环境使用相同的部署文件。
并且每个环境彼此隔离

关于kubernetes - kubernetes 命名空间中部署定义的唯一性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55827631/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com