kubernetes如何仅为副本编写部署yaml
我有一个pod yaml文件(见下文)。它有我想要的所有属性,除了副本属性。因此,我必须编写部署yamlkubernetes如何仅为副本编写部署yaml,kubernetes,Kubernetes,我有一个pod yaml文件(见下文)。它有我想要的所有属性,除了副本属性。因此,我必须编写部署yaml apiVersion: v1 kind: Pod metadata: name: app-ykt labels: app: app-ykt purpose: ykt_production spec: containers: - name: app-ykt image: app imagePullPolicy: IfNotPresent
apiVersion: v1
kind: Pod
metadata:
name: app-ykt
labels:
app: app-ykt
purpose: ykt_production
spec:
containers:
- name: app-ykt
image: app
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
volumeMounts:
- name: volume-app-ykt
mountPath: /usr/application
env:
- name: spring.config.location
value: application.properties
volumes:
- name: volume-app-ykt
hostPath:
path: /opt/docker/datalook-pre-core
type: Directory
在编写部署文件时,我必须提到映像和其他我不想要的属性。更重要的是,它创建了另一个pod,并且缺少一些我必须拥有的属性,例如卷。我的目标就是这个复制品,这样我就可以获得吊舱的高可用性。有解决办法吗
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-ykt
labels:
app: app-ykt
spec:
replicas: 1
selector:
matchLabels:
app: app-ykt
template:
metadata:
labels:
app: app-ykt
spec:
containers:
- name: app-ykt
image: app
ports:
- containerPort: 80
首先,我认为hostPath卷不是HA解决方案,所以您应该考虑在kubernetes集群中以ReadWriteMany持久卷的形式共享一个卷。 然后,您还需要复制的POD(如服务[0])之间的内部负载平衡器 我希望它能帮助你
[0][首先,我认为hostPath卷不是HA解决方案,所以您应该考虑在kubernetes集群中以ReadWriteMany持久卷的形式共享一个卷。 然后,您还需要复制的POD(如服务[0])之间的内部负载平衡器 我希望它能帮助你
[0][每个Kubernetes对象都有自己的要求。如果要创建
部署
,则必须指定此属性。部署
对象是复制集
创建和管理它的“抽象”层。如果没有容器属性描述,则无法创建任何部署
(RelicaSet)(图像、卷等)
如果你要使用Kubernetes,你需要通过“Kubernetes方式”部署你的应用。你可以用你的应用描述创建部署
.yml文件,然后你可以将部署
扩展到任意数量的副本
服务
和可能的入口
对象可以帮助您在副本之间实现负载平衡,正如@Daein在上面提到的那样
您的部署可能如下所示:
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-ykt
namespace: elk
labels:
app: app-ykt
spec:
replicas: 3
selector:
matchLabels:
app: app-ykt
template:
metadata:
labels:
app: app-ykt
spec:
containers:
- name: app-ykt
image: <your_image>
ports:
- containerPort: 80
env:
- name: spring.config.location
value: application.properties
volumeMounts:
- name: volume-app-ykt
mountPath: /usr/application
volumes:
- name: volume-app-ykt
hostPath:
path: /opt/docker/datalook-pre-core
type: Directory
apiVersion:apps/v1
种类:部署
元数据:
名称:应用程序ykt
名称空间:麋鹿
标签:
app:app ykt
规格:
副本:3份
选择器:
火柴标签:
app:app ykt
模板:
元数据:
标签:
app:app ykt
规格:
容器:
-名称:应用程序ykt
图片:
端口:
-集装箱港口:80
环境:
-名称:spring.config.location
值:application.properties
体积数量:
-名称:卷应用程序ykt
装载路径:/usr/应用程序
卷数:
-名称:卷应用程序ykt
主机路径:
路径:/opt/docker/datalook预核心
类型:目录
这将创建Deployment
,这反过来将自动创建3个副本(3个pod),其中只有一个app ykt
容器
注意:正如@Daein提到的,我也认为在这里使用hostPath
不是一个好主意,尽管我不知道您的应用程序配置。hostPath
通常用于访问节点上的任何文件
请记住,只有在需要读或写时才使用hostPath卷
节点上的系统文件。切勿使用它们跨POD持久化数据。
“Kubernetes在行动”(c)Marko Luksa
每个Kubernetes对象都有自己的要求。如果要创建
Deployment
,则必须指定此属性。Deployment
对象是ReplicaSet
创建和管理它的“抽象”层。如果没有容器属性描述,则无法创建任何Deployment
(RelicaSet)(图像、卷等)
如果你要使用Kubernetes,你需要通过“Kubernetes方式”部署你的应用。你可以用你的应用描述创建部署
.yml文件,然后你可以将部署
扩展到任意数量的副本
服务
和可能的入口
对象可以帮助您在副本之间实现负载平衡,正如@Daein在上面提到的那样
您的部署可能如下所示:
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-ykt
namespace: elk
labels:
app: app-ykt
spec:
replicas: 3
selector:
matchLabels:
app: app-ykt
template:
metadata:
labels:
app: app-ykt
spec:
containers:
- name: app-ykt
image: <your_image>
ports:
- containerPort: 80
env:
- name: spring.config.location
value: application.properties
volumeMounts:
- name: volume-app-ykt
mountPath: /usr/application
volumes:
- name: volume-app-ykt
hostPath:
path: /opt/docker/datalook-pre-core
type: Directory
apiVersion:apps/v1
种类:部署
元数据:
名称:应用程序ykt
名称空间:麋鹿
标签:
app:app ykt
规格:
副本:3份
选择器:
火柴标签:
app:app ykt
模板:
元数据:
标签:
app:app ykt
规格:
容器:
-名称:应用程序ykt
图片:
端口:
-集装箱港口:80
环境:
-名称:spring.config.location
值:application.properties
体积数量:
-名称:卷应用程序ykt
装载路径:/usr/应用程序
卷数:
-名称:卷应用程序ykt
主机路径:
路径:/opt/docker/datalook预核心
类型:目录
这将创建Deployment
,这反过来将自动创建3个副本(3个pod),其中只有一个app ykt
容器
注意:正如@Daein提到的,我也认为在这里使用hostPath
不是一个好主意,尽管我不知道您的应用程序配置。hostPath
通常用于访问节点上的任何文件
请记住,只有在需要读或写时才使用hostPath卷
节点上的系统文件。切勿使用它们跨POD持久化数据。
“Kubernetes在行动”(c)Marko Luksa
就这个例子而言,如何编写部署yaml文件?如果部署包含Pod拥有的所有字段,那么我只需要编写服务和部署yaml文件。为什么我们仍然需要Pod文件?
Deployment
将创建Pod
。您根本不需要Pod
文件。我已经为这个案例更改了我的帖子,即如何编写部署人员t yaml文件?如果部署包含Pod拥有的所有字段,那么我只需要编写服务和部署yaml文件。为什么我们仍然需要Pod文件?Deployment
将创建Pod
。你根本不需要Pod
文件。我已经更改了我的帖子