Kubernetes SatefulSet(有状态应用部署)
Kubernetes SatefulSet(有状态应用部署)
• 部署有状态应用
• 解决Pod独立生命周期,保持Pod启动顺序和唯一性
1. 稳定,唯一的网络标识符,持久存储
2. 有序,优雅的部署和扩展、删除和终止
3. 有序,滚动更新
应用场景:数据库
说明
常规的service
service:一组pod访问策略,提供负载均衡和服务发现
其他:service 会分配一个 CLUSTER-IP 虚拟IP 使整个容器进行通信。
headless service:无头服务
headless service:与service类似,不同点在于clusterIP为None
需要部署一个dns服务器
https://www.cnblogs.com/xiangsikai/p/11413970.html
案例
创建有状态应用
1、vim sts.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx
labels:
app: nginx
spec:
ports:
- port: 80
name: web
clusterIP: None
selector:
app: nginx --- apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: nginx-statefulset
namespace: default
spec:
# 指定使用的service
serviceName: nginx
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
2、创建容器
kubectl create -f sts.yaml
3、查看创建容器以及service、通过dns名称,保证每个固定的身份(pod/nginx-statefulset-x)标识。
kubectl get pods,svc
NAME READY STATUS RESTARTS AGE
# statefulset-x 为身份标识
pod/nginx-statefulset-0 1/1 Running 0 16s
pod/nginx-statefulset-1 1/1 Running 0 13s
pod/nginx-statefulset-2 1/1 Running 0 10s
pod/sh-77649dbd59-ppfbx 1/1 Running 0 21m NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 5d16h
service/nginx ClusterIP None <none> 80/TCP 26s
4、临时启动程序测试解析,通过dns解析唯一标识的容器
kubectl run --image=busybox:1.28.4 -it sh
/ # nslookup nginx-statefulset-0
Server: 10.0.0.2
Address 1: 10.0.0.2 kube-dns.kube-system.svc.cluster.local nslookup: can't resolve 'nginx-statefulset-0'
如此可以比对出效果
StatefulSet与Deployment区别:有身份的!
身份三要素:
• 域名
• 主机名
• 存储(PVC)
ClusterIP A记录格式:<service-name>.<namespace-name>.svc.cluster.local
ClusterIP=None A记录格式:<statefulsetName-index>.<service-name>.svc.cluster.local
示例:web-0.nginx.default.svc.cluster.local
Kubernetes SatefulSet(有状态应用部署)的更多相关文章
- kubernetes系列03—kubeadm安装部署K8S集群
本文收录在容器技术学习系列文章总目录 1.kubernetes安装介绍 1.1 K8S架构图 1.2 K8S搭建安装示意图 1.3 安装kubernetes方法 1.3.1 方法1:使用kubeadm ...
- 使用kubernetes 官网工具kubeadm部署kubernetes(使用阿里云镜像)
系列目录 kubernetes简介 Kubernetes节点架构图: kubernetes组件架构图: 准备基础环境 我们将使用kubeadm部署3个节点的 Kubernetes Cluster,整体 ...
- k8s之有状态服务部署基石(基础知识)
PV&PVC&HeadlessService 4.1.什么是无状态/有状态服务? 无状态服务: 1.没有实时的数据需要存储 (即使有,也是静态数据) 2.服务集群网络中,拿掉一个服务后 ...
- 【架构】Kubernetes和Spring Cloud哪个部署微服务更好?
Spring Cloud 和Kubernetes都自称自己是部署和运行微服务的最好环境,但是它们在本质上和解决不同问题上是有很大差异的.在本文中,我们将看到每个平台如何帮助交付基于微服务的架构(MSA ...
- Kubernetes K8S之通过helm部署metrics-server与HPA详解
Kubernetes K8S之通过helm部署metrics-server与 Horizontal Pod Autoscaling (HPA)详解 主机配置规划 服务器名称(hostname) 系统版 ...
- 基于kubernetes平台微服务的部署
基于kubernetes平台微服务的部署 首先下载插件: kubernetes Continuous Deploy 然后去找 .kube/ 里的config 复制里面的内容 去添加凭据: 然后就是脚本 ...
- kubernetes 集群的安装部署
本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 首先kubernetes得官方文档我自己看着很乱,信息很少, ...
- Kubernetes集群的安装部署
此文参照https://www.cnblogs.com/zhenyuyaodidiao/p/6500830.html,并根据实操过程略作修改. 1.环境介绍及准备: 1.1 物理机操作系统 物理机操作 ...
- kubernetes命令式容器应用编排/部署应用/探查应用详情/部署service对象/扩缩容/修改删除对象
部署Pod应用 创建delpoyment控制器对象 [root@master ~]# kubectl run myapp --image=ikubernetes/myapp:v1 --port=80 ...
随机推荐
- Pycharm 疑难杂症
1. Pycharm报错:AttributeError: 'NoneType' object has no attribute 'get'的解决办法 https://blog.csdn.net/fre ...
- vue-品牌管理案例
品牌管理 分析 获取到 id 和 name ,直接从 data 上面获取 组织出一个对象 把这个对象,调用 数组的 相关方法,添加到 当前 data 上的 list 中 注意:在Vue中,已经实现了数 ...
- windows 下使用cmake指定visual studio 版本
https://blog.csdn.net/iceboy314159/article/details/87829950
- 敏捷软件开发_实例1<二>
敏捷软件开发_实例1 这本书的实例非常好,给了我非常多的启发.主要讲了两个实例,咖啡机和薪水支付实例,咖啡机实例比较简单并没有用什么设计模式,薪水支付实例用了很多设计模式,包括后面的打包等. 咖啡机实 ...
- AwaitAsync(异步和多线程)
参考了一些大佬写的文章: https://www.cnblogs.com/yilezhu/p/10555849.html这个大佬写的文章,我还是很喜欢的 https://www.cnblogs.com ...
- echarts水球图编写
// 前提条件 需要引入这个插件<script src="./echarts-liquidfill.min.js"></script> // 代码 let ...
- 教你如何添加Xcode 9.3配置包?(安装流程可供其他版本安装参考)
1.准备好你想要的Xcode版本的安装包 ,这里以Xcode 9.3为例. → 2.打开Xcode开发工具的安装路径 ...
- Python—网络抓包与解包(pcap、dpkt)
pcap安装 [root@localhost ~]# pip install pypcap 抓包与解包 # -*- coding:utf-8 -*- import pcap, dpkt import ...
- Python—虚拟环境的创建与管理(virtualenv与virtualenvwrapper)
virtualenv 1.安装virtualenv包 [root@localhost ~]# pip install virtualenv 2.创建虚拟环境,位置不固定,可以在项目的目录下,也可以不在 ...
- while语句 break和continue
1.whlie 循环 基本条件 :while 条件: 代码块(循环体) else: 当上面的条件为假的,才会执行 执行顺序: 判断条件是否为真,如果为真,执行循环体,然后判断条件,...直到循环条件为 ...