2023-9-13 myluzh Kubernetes
0x01 无状态和有状态区别 1.无状态 *认为Pod都是一样的 *没有顺序要求 *不用考虑在哪个node运行 *可以随意进行伸缩扩展 2.有状态 *上面无状态的因素都需要考虑到 *让每个pod独立的,保持pod启动顺序和唯一性 *唯一的网络标识符,持久存储 *有序的(比如mysql主从) StatefulSet是用于管理有状态应用的控制器,它为每个Pod分配唯一的标识符,并按照一定规则生成唯一的FQDN(Fully Qualified Domain Name)。这使得有状态应用能够更好地适应动态的集群环境。 而Deployment则是用于管理无状态应用的控制器,它不保证每个Pod的标识符和FQDN的唯一性,也不保证Pod的启动顺序。 0x02 部署有状态应用 StatefulSet yaml文件如下,注意:ClusterIP为none(无头service) apiVersion: apps/v1 kind: StatefulSet metadata: name: n...标签: k8s StatefulSet
2023-6-20 myluzh Kubernetes
0x01 什么是 StatefulSet StatefulSet 是用来管理有状态的应用,例如数据库。 前面我们部署的应用,都是不需要存储数据,不需要记住状态的,可以随意扩充副本,每个副本都是一样的,可替代的。 而像数据库、Redis 这类有状态的,则不能随意扩充副本。 StatefulSet 会固定每个 Pod 的名字 0x02 部署 StatefulSet 类型的 Mongodb 1.创建mongo.yaml apiVersion: apps/v1 kind: StatefulSet metadata: name: mongodb spec: serviceName: mongodb replicas: 3 selector: matchLabels: app: mongodb template: metadata: labels: app: mongodb spec: containers: - name: mongo image: mongo:...标签: k8s kubernetes StatefulSet