K8S动态PV实战之nginx部署

这里我们介绍动态PV第一个案例,部署3个副本的nginx服务。主要学习 volumeClaimTemplate 属性。

statefulSet的三个组成部分:
1)Headless Service :名为nginx,用来定义Pod网络标识( DNS domain)。
2)StatefulSet :定义具体应用,名为Nginx,有三个Pod副本,并为每个Pod定义了一个域名。
3)volumeClaimTemplates : 存储卷申请模板,创建PVC,指定pvc名称大小,将自动创建pvc,且pvc必须由存储类供应。
为什么需要 headless service 无头服务?
在用Deployment时,每一个Pod名称是没有顺序的,是随机字符串,因此是Pod名称是无序的,但是在statefulset中要求必须是有序 ,每一个pod不能被随意取代,pod重建后pod名称还是一样的。而pod IP是变化的,所以是以Pod名称来识别。pod名称是pod唯一性的标识符,必须持久稳定有效。这时候要用到无头服务,它可以给每个Pod一个唯一的名称 。
为什么需要volumeClaimTemplate?
对于有状态的副本集都会用到持久存储,对于分布式系统来讲,它的最大特点是数据是不一样的,所以各个节点不能使用同一存储卷,每个节点有自已的专用存储,但是如果在Deployment中的Pod template里定义的存储卷,是所有副本集共用一个存储卷,数据是相同的,因为是基于模板来的 ,而statefulset中每个Pod都要自已的专有存储卷,所以statefulset的存储卷就不能再用Pod模板来创建了,于是statefulSet使用volumeClaimTemplate,称为卷申请模板,它会为每个Pod生成不同的pvc,并绑定pv, 从而实现各pod有专用存储。这就是为什么要用volumeClaimTemplate的原因。

rbac
nfsnginx/nfsrbac.yml。与前文保持一致。

nfsnginx/nfsnginxstorage.yml。与前文介绍类似,注意修改storageClass的名称

如果定义多个副本。必须使用volumeClaimTemplate属性。如果定义1个副本。可以使用pod+pvc方式。
nfsnginx/nginxstatefulset.yml



  • Kubernetes 閮ㄧ讲閰嶇疆 Ingress
    绛旓細绗竴涓紪杈 vi deploy.yaml 鎼滅储鍐呭 controller:v1.1.1 闃块噷浜戦暅鍍忕櫥褰曟悳绱 https://cr.console.aliyun.com/cn-hangzhou/instances/images 绗簩涓紪杈 vi deploy.yaml 鎼滅储鍐呭 kube-webhook-certgen:v1.1.1 image: k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.1.1@sha256:...
  • K8s -- Deployment
    绛旓細涓涓渶绠鍗曠殑nginx搴旂敤锛屽叾Deployment鏂囦欢濡備笅锛氭垨 閫氳繃 kubectl create -f nginx-deployment.yaml 鍛戒护鎴栬 kubectl apply -f nginx-deployment.yaml 鍛戒护鍒涘缓鍚嶄负nginx-deployment鐨凞eployment瀵硅薄銆傞氳繃Deployment瀵硅薄锛屼綘鍙互杞绘澗鐨勫仛鍒颁互涓嬩簨鎯咃細浠ヤ笂闈㈢殑nginx-deployment.yaml鏂囦欢涓轰緥锛屼娇鐢ㄤ互涓嬪懡浠ゅ垱寤轰竴涓...
  • k8s闆嗙兢涓璱pvs璐熻浇璇﹁В
    绛旓細杩欓噷鍒涘缓涓涓猻ervice涓篘odePort鐨nginx搴旂敤瀵瑰簲涓簄odeip:port(192.168.100.100:30080)锛 clusterip:port(10.101.19.237:80) $ip ad| grep ipvs kubectl get svc 1)銆佸叆鍙f祦閲忓尮閰嶏細 闆嗙兢澶栭儴閫氳繃node ip 璁块棶鍒板悗绔痯od鏈嶅姟锛屾祦閲忚偗瀹氭槸鍏堝湪PREROUTING閾句腑澶勭悊锛 $iptables -S -tnat ...
  • k8s 瀵瑰鏈嶅姟涔媔ngress
    绛旓細瀹為檯涓婏紝 ingress 鐩稿綋浜庝竴涓7灞傜殑璐熻浇鍧囪 鍣紝鏄k8s瀵瑰弽鍚戜唬鐞嗙殑涓涓娊璞°傚ぇ姒傜殑宸ヤ綔鍘熺悊涔熺‘瀹炵被浼间簬Nginx锛屽彲浠ョ悊瑙f垚鍦 Ingress 閲屽缓绔嬩竴涓釜鏄犲皠瑙勫垯 , ingress Controller 閫氳繃鐩戝惉 Ingress 杩欎釜api瀵硅薄閲岀殑閰嶇疆瑙勫垯骞惰浆鍖栨垚 Nginx 鐨勯厤缃紙kubernetes澹版槑寮廇PI鍜屾帶鍒跺惊鐜級 , 鐒跺悗瀵瑰閮ㄦ彁渚...
  • K8S缁勪欢鎺㈢储
    绛旓細閫氳繃deploy閮ㄧ讲3涓nginx鍓湰锛屽苟閫氳繃svc鎸囧畾璇ョ粍pod鐨勫叕寮缃戠粶鏈嶅姟銆1锛変娇鐢ㄥ懡浠よ鐨勬柟寮 2锛変娇鐢▂aml鐨勬柟寮 缂虹偣锛氱浉鍏崇殑pod閲婃斁鍚庯紝涓嶄細鑷姩鍒犻櫎鎸傝浇鐨勬暟鎹 pv锛氭寔涔呭嵎锛屽皢搴旂敤闇瑕佹寔涔呭寲鐨勬暟鎹繚鎸佸埌鎸囧畾浣嶇疆 pvc锛氭寔涔呭嵎澹版槑锛屽0鏄庨渶瑕佷娇鐢ㄥ埌鎸佷箙鍗疯鏍 鎶藉彇搴旂敤閰嶇疆锛屽彲浠ュ疄鐜拌嚜鍔ㄦ洿鏂般俢onfigMap鍙互...
  • k8s-ingress鎺у埗鍣
    绛旓細榛樿閰嶇疆浠 鎵鏈夊悕绉扮┖闂 鐩戣Ingress瀵硅薄銆傝嫢瑕佹洿鏀规琛屼负锛岃浣跨敤璇ユ爣蹇 --watch-namespace 灏嗚寖鍥撮檺鍒朵负鐗瑰畾鐨勫悕绉扮┖闂淬傝8鏈哄畨瑁: 鐗堟湰涓嶅悓鍏蜂綋鏍规嵁鏌ョ湅瀹樼綉 https://kubernetes.github.io/ingress-nginx/deploy/ 閰嶇疆閫氳繃涓绘満80锛443绔彛璁块棶 github 瀹夎鏂囨。 Kubernetes涓殑Ingress API浣垮ぇ閲忔帶鍒跺櫒...
  • k8s鐨凷ervice璇﹁В
    绛旓細{SVCNAME}_SERVICE_PORT 鍙橀噺銆 杩欓噷 Service 鐨勫悕绉伴渶澶у啓锛屾í绾胯杞崲鎴愪笅鍒掔嚎銆備妇涓緥瀛愶紝涓涓悕绉颁负 nginx-svc 鐨 Service 鏆撮湶浜 TCP 绔彛 8080锛 鍚屾椂缁欏畠鍒嗛厤浜 Cluster IP 鍦板潃 10.0.0.11锛岃繖涓 Service 鐢熸垚浜嗗涓嬬幆澧冨彉閲忥細杩涘叆example瀹瑰櫒锛宔nv鎵撳嵃鐜鍙橀噺锛氳闂Nginx鏈嶅姟鍙互浣跨敤 ...
  • 浣跨敤Docker 閮ㄧ讲 Nginx + Uwsgi
    绛旓細鍙﹀锛岃缃 ALLOWED_HOSTS = ['*']requirment.txt 濡備笅锛歅S: uwsgi 涔熷彲鍏堜娇鐢ㄥ懡浠ゅ惎鍔ㄦ潵妫娴嬬▼搴忔槸鍚︽甯革細 uwsgi --http :8000 --module ziguan.wsgi (浣跨敤http鏂瑰紡鍚姩锛屽悗闈㈡槸ziguan.wsgi 鑰屼笉鏄痷sgi锛 璇锋敞鎰忥紒锛侊紒)Nginx閰嶇疆鏂囦欢 棰濆鐨勮ˉ鍏咃細褰撴垜鍦K8s閮ㄧ讲璇ョ幆澧冩槸锛屽彂鐜颁袱涓狽ginx鐨凱od涓...
  • k8s 涔 service ip
    绛旓細鏈枃閫氳繃涓嬮潰鐨勪緥瀛愶紝鍒嗘瀽璁块棶service ip鐨勬祦绋嬪強iptables瑙勫垯濡備綍鐢熸晥銆傞氳繃姝aml鏂囦欢鍒涘缓涓変釜pod锛屼竴涓猚lient锛屼袱涓nginx(鐩戝惉鍦80绔彛)锛屽拰涓涓猻ervice(灏9999鏄犲皠鍒皀ginx鐨80绔彛)锛屽疄鐜板埌nginx鍚庣鐨勮礋杞藉潎琛°傛煡鐪嬪垱寤虹殑涓変釜pod锛屼袱涓猲ginx pod閮ㄧ讲鍦╳orker1涓婏紝client閮ㄧ讲鍦╳orker2涓娿傛煡鐪嬪垱寤虹殑...
  • ...f nginx 涓鐩存寕鐫,涓嶈緭鍑轰篃涓嶄腑鏂,浠h〃杩欎釜k8s鏈嶅姟鏄笉鏄病鏈夋 ...
    绛旓細鏈夊彲鑳芥槸浣犵殑nginx瀹瑰櫒娌℃湁鎶婃棩蹇楄緭鍑 涔熷彲鑳芥槸nginx鐨刾od鐘舵佷笉姝e父锛屽彲浠ユ鏌ヤ笅pod鏄惁running 甯屾湜鍙互甯姪浣狅紝璇烽噰绾筹紝璋㈣阿
  • 扩展阅读:宾馆炮火连天 ... 适合k8在家里做的小任务 ... k8s经典极速电影 ... 美国k8s经典的电影 ... 圈内k8怎么玩 ... k8的八个标准姿势检查 ... 疯狂k8s经典 ... 七夕炮火连天的夜晚 ... k8s经典影视剧最新 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网