0
点赞
收藏
分享

微信扫一扫

八、kubernetes 核心技术-Controller(StatefulSet)


1、无状态和有状态区别

  • 无状态:
  • 认为Pod都是一样的
  • 部署没有顺序要求
  • 不用考虑在哪个node运行
  • 随意进行伸缩和扩展
  • (StatefulSet)有状态:
  • 无状态的因素有需要考虑到
  • 让每个Pod独立,保持Pod启动顺序和唯一性
  • 唯一的网络标识符,持久存续
  • 有序部署,比如Mysql主从

2、 部署有状态应用

  • 无头Service
  • ClusterIP: none
    八、kubernetes 核心技术-Controller(StatefulSet)_kubernetes

(1) 实例演示

apiVersion: v1
kind: Service
metadata:
name: web01-satefulset
labels:
app: web01-satefulset
spec:
clusterIP: None
selector:
app: web01-satefulset
ports:
- port: 80
name: web
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web01-satefulset
namespace: default
spec:
serviceName: web01-satefulset
replicas: 3
selector:
matchLabels:
app: web01-satefulset
template:
metadata:
labels:
app: web01-satefulset
spec:
containers:
- name: web01-satefulset
image: nginx:1.14
ports:
- containerPort: 80

经查勘 有三个pod,每个都是唯一名称,无头的Service

八、kubernetes 核心技术-Controller(StatefulSet)_mysql主从_02

deployment和statefulSet区别:有身份的(唯一标识的)

  • 根据主机名+按照一定规则生成域名
  • 每个Pod有唯一主机名
  • 格式 主机名称.service名称.名称空间.svc.cluster.local
  • Web01-statefulset-().web01.default.svc.cluster.local


举报

相关推荐

0 条评论