網站首頁 編程語言 正文
一、概念
1.1.無狀態和有狀態的區別
主要從網絡和存儲來對比
無狀態不考慮存儲和網絡,可以任意漂移,每個副本是一樣的,如Nginx
有狀態應用需要考慮存儲和網絡,每個副本是不對等的,具有唯一的ID,如etcd、mysql
1.2.StatefulSet的特點
專為部署有狀態服務而生
解決Pod獨立生命周期,保持Pod啟動順序和唯一性
應用場景:分布式應用、數據庫集群
穩定,唯一的網絡標識符,持久存儲
有序,優雅的部署和擴展、刪除、終止
有序,滾動更新
1.3.Headless Service
也是一種Service,但不需要Cluster IP,需要設置clusterIP: None
1.4.serviceName
告訴StatefulSet要使用serviceName指定的headless service來保證Pod的身份
1.5.穩定的存儲
存儲卷使用volumeClaimTemplates創建,稱為卷申請模板;當創建一個PV時,同樣會為每個Pod分配并且創建一個編號PVC
二、實例
拿Nginx測試,主要演示yaml的寫法,實際應用中需用有狀態服務
2.1.statefulset.yaml
apiVersion: apps/v1 kind: StatefulSet metadata: labels: app: web name: web spec: replicas: 3 selector: matchLabels: app: web serviceName: "headless-web" template: metadata: labels: app: web spec: containers: - image: nginx imagePullPolicy: IfNotPresent name: web ports: - containerPort: 8080 volumeMounts: - name: www mountPath: /usr/share/nginx/html volumeClaimTemplates: - metadata: name: www spec: storageClassName: "managed-nfs-storage" accessModes: [ "ReadWriteOnce" ] resources: requests: storage: 1Gi
設置了3個副本,從0開始標號,創建3個副本
自動創建PV和PVC
2.2.headless-svc.yaml
apiVersion: v1 kind: Service metadata: name: headless-web spec: clusterIP: None ports: - port: 80 protocol: TCP selector: app: web
CLUSTER-IP為None
啟動一個busybox的Pod
kubectl run test -it --rm --image=busybox -- sh nslookup headless-web
域名解析結果
在容器里可以通過<Pod Name>.<Headless Service>訪問
curl web-0.headless-web
參考視頻:https://ke.qq.com/user/index/index.html#/plan/cid=1709963&term_id=102815140
原文鏈接:https://blog.csdn.net/anqixiang/article/details/109008167
相關推薦
- 2022-12-27 SAP技巧之修改自帶搜索幫助為自定數據集_數據庫其它
- 2022-10-23 C#在Entity?Framework中實現事務回滾_C#教程
- 2023-10-10 uniapp省市區選擇 支持微信小程序 支持回顯 支持一列兩列三列
- 2022-12-11 Rust中Cargo的使用詳解_Rust語言
- 2022-04-06 詳解pandas中缺失數據處理的函數_python
- 2022-04-14 Python+Tkinter簡單實現注冊登錄功能_python
- 2023-01-15 c++矩陣計算性能對比:Eigen和GPU解讀_C 語言
- 2022-08-04 解析Mybatis對sql表的一對多查詢問題_MsSql
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支