gpt4 book ai didi

deployment - 如何配置 Kubernetes 多 Pod 部署

转载 作者:行者123 更新时间:2023-12-03 06:25:30 24 4
gpt4 key购买 nike

我想通过 k8s 部署对象管理我的部署来部署应用程序集群。该文档让我非常困惑。我的基本布局具有以下独立缩放的组件:

  1. API 服务器
  2. 用户界面服务器
  3. Redis 缓存
  4. 定时器/计划任务服务器

从技术上讲,上述所有 4 个都属于独立扩展的单独 Pod。

我的问题是:

  1. 我是否需要创建 pod.yml 文件,然后以某种方式在 deployment.yml 文件中引用它们,或者部署文件也可以嵌入 pod 定义吗?
  2. K8s 文档似乎暗示 Deploymentspec 部分相当于定义一个 pod。那是对的吗?如果我想以声明方式描述多 Pod 部署怎么办?我是否需要多个deployment.yml 文件?

最佳答案

Pagid 的回答包含了大部分基础知识。您应该为您的场景创建 4 个部署。每个部署都会创建一个 ReplicaSet,用于调度和监督 DeploymentPod 集合。

每个部署很可能还需要在其前面有一个服务才能访问。我通常创建一个 yaml 文件,其中包含 Deployment 和相应的 Service。以下是我使用的 nginx.yaml 示例:

apiVersion: v1
kind: Service
metadata:
annotations:
service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
name: nginx
labels:
app: nginx
spec:
type: NodePort
ports:
- port: 80
name: nginx
targetPort: 80
nodePort: 32756
selector:
app: nginx
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginxdeployment
spec:
replicas: 3
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginxcontainer
image: nginx:latest
imagePullPolicy: Always
ports:
- containerPort: 80

这里有一些需要澄清的附加信息:

  • Pod 不是一个可扩展的单元。调度 Pod 的 Deployment 是。
  • Deployment 旨在表示一组共同实现单一目的的 pod。
  • 您可以让多个部署在集群的虚拟网络中协同工作。
  • 要访问可能由在不同节点上运行的许多 Pod 组成的 Deployment,您必须创建一个服务。
  • 部署旨在包含无状态服务。如果您需要存储状态,则需要创建 StatefulSet (例如,对于数据库服务)。

关于deployment - 如何配置 Kubernetes 多 Pod 部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43217006/

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