Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 如何在部署中引用复制集?_Kubernetes_Deployment_Devops_Minikube - Fatal编程技术网

Kubernetes 如何在部署中引用复制集?

Kubernetes 如何在部署中引用复制集?,kubernetes,deployment,devops,minikube,Kubernetes,Deployment,Devops,Minikube,我是kubernetes的新手,正在尝试创建部署。首先,我创建了一个名为rs.yml的复制集,如下所示 apiVersion: apps/v1 kind: ReplicaSet metadata: name: web labels: env: dev role: web spec: replicas: 4 selector: matchLabels: role: web tem

我是kubernetes的新手,正在尝试创建部署。首先,我创建了一个名为rs.yml的复制集,如下所示

apiVersion: apps/v1 
kind: ReplicaSet 
metadata:    
  name: web   
  labels:   
    env: dev    
    role: web 
spec:   
  replicas: 4   
  selector:      
    matchLabels:
      role: web   
  template:     
    metadata:
      labels:
        role: web   
    spec:
      containers:
        - name: nginx
          image: nginx
并使用

kubectl应用-f rs.yml


现在改为在部署中重写所有这些。我只想在我的deployment.yml文件中引用此“rs.yml”文件或服务。

您可以创建一个YAMl文件,并在其中添加这两个部署服务

apiVersion: apps/v1 
kind: ReplicaSet 
metadata:    
  name: web   
  labels:   
    env: dev    
    role: web 
spec:   
  replicas: 4   
  selector:      
    matchLabels:
      role: web   
  template:     
    metadata:
      labels:
        role: web   
    spec:
      containers:
        - name: nginx
          image: nginx
---
apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: MyApp
  ports:
    - protocol: TCP
      port: 80
      targetPort: 9376
您可以使用
--
生成单个YAML文件来划分这些内容

另外,另一个建议是默认情况下不要使用复制集部署在后台创建复制集


您可以使用kind:deployment检查
kubectl get rc
仍然会有副本集。部署在后台创建并管理它。

您不需要编写
ReplicaSet
Deployment
,只需将
种类更改为
Deployment
。应用
Deployment
将自动创建
ReplicaSet
,并且
Pods
仍然可以在部署中引用或使用ReplicaSet。引用由apply和apply创建的文件或复制集对象就可以了。当deployment.yml的大小变得太大时又会怎样呢?您不能从一个YAML引用另一个YAML,因为它不支持导入或包含之类的任何内容。你只需要合并文件。如果您有多个YAML,并且希望以更好的方式和流程管理它,那么可以使用Kustomize<代码>部署.yaml
文件不会以GB或MB为单位变大,因为yaml非常轻量级。只需合并文件,使用
kind:deployment
并应用您的pods将启动并运行的文件。要扩展@HarshManvar answer-您可以有多个yaml文件,分别用于部署、服务、配置映射等,并使用
kubectl apply-f一次性应用它们。
(请注意结尾处的。)-只需将它们放在一个单独的目录中,将它们与其他清单分开即可。