K8S中YAML案例

目錄

案例:自主式創建service并關聯上面的pod

案例:部署redis

案例:部署myapp

案例:部署MySQL數據庫

總結

1.K8S集群中訪問流向

K8S集群外部:客戶端——nodeIP:nodeport——通過target port——podIP:containerport

2.語法格式

3.yaml文件組成部署

4.常用字段的含義


案例:自主式創建service并關聯上面的pod

資源名稱:my-nginx-kkk

命名空間:my-kkk

容器鏡像:nginx:1.21

容器端口:80

標簽:njzb: my-kkk

創建? server去關聯上面的pod

結果:首先修改頁面:tian? wai? lai? wu,對外訪問,輸入地址就能訪問

1. 試創建文件獲取模板文件

kubectl create ns my-kkk --dry-run -oyaml
kubectl run my-nginx-kkk --image=nginx:1.21 --port=80 --dry-run -oyaml > pod.yaml

2. 編寫yaml文件?

kubectl get svc
kubectl get svc nginx -oyaml

vim pod.yaml 
kubectl apply -f pod.yaml 
kubectl get svc,pod -n my-kkk

將獲取的yaml資源內容復制過來,進行修改?

vim pod.yamlapiVersion: v1
kind: Namespace
metadata:name: my-kkk
---
apiVersion: v1
kind: Pod
metadata:labels:njzb: my-kkkname: my-nginx-kkknamespace: my-kkk
spec:containers:- image: nginx:1.21name: my-nginx-kkkports:- containerPort: 80restartPolicy: Always
---
apiVersion: v1
kind: Service
metadata:labels:njzb: my-kkkname: my-nginx-kkknamespace: my-kkk
spec:ports:- nodePort: 31111  ###節點端口號port: 80         ###服務暴露端口protocol: TCP    ###通信協議targetPort: 80   ###要轉發到的容器端口selector:njzb: my-kkk     ###該服務所選擇的后端podtype: NodePort

3. 測試結果

案例:部署redis

[root@master01 demo]# vim redis.yaml apiVersion: apps/v1
kind: Deployment
metadata:name: redis-dpmlabels:app: redis
spec:               ###資源所需參數replicas: 1selector:matchLabels:app: redis   ###只會與標簽app:redis的pod關聯template:          ###業務模板,如果有多個副本,所有副本屬性會按照模板進行匹配metadata:labels:app: redisspec:           ###資源所需參數containers:- name: redisimage: redis:latestports:- containerPort: 6379
---
apiVersion: v1
kind: Service
metadata:name: redis-dbmlabels:app: redis
spec:selector:app: redisports:- nodePort: 32379port: 6379protocol: TCPtargetPort: 6379type: NodePort

[root@master01 home]# kubectl get svc,pod

案例:部署myapp

apiVersion: apps/v1
kind: Deployment
metadata:name: myapp-kknamespace: defaultlabels:app: myapp
spec:replicas: 1selector:matchLabels:app: myapptemplate:metadata:labels:app: myappspec:containers:- name: myappimage: soscscs/myapp:v1ports:- containerPort: 80

案例:部署MySQL數據庫

[root@master01 demo]# cat mysql.yaml 
apiVersion: v1
kind: Namespace
metadata:name: devops
---
apiVersion: apps/v1
kind: Deployment
metadata:name: devops-mysqlnamespace: devops
spec:replicas: 1revisionHistoryLimit: 5      ###保留5個可以回滾的歷史紀錄strategy:type: RollingUpdate        ###更新策略為:RollingUpdate;在進行更新時,將舊pod副本替換為            新的pod,確保服務的可用性selector:matchLabels:app: devops-mysqltemplate:metadata:labels:app: devops-mysqlspec:volumes:- name: devops-mysqlnfs:server: 192.168.91.104path: /root/data/nfs/mysql/devopscontainers:- name: devops-mysqlimage: mysql:5.7env:- name: MYSQL_ROOT_PASSWORDvalue: abc123imagePullPolicy: Alwaysports:- containerPort: 3306volumeMounts:- name: devops-mysqlmountPath: /var/lib/mysql
---
apiVersion: v1
kind: Service
metadata:name: devops-mysqlnamespace: devops
spec:ports:- port: 3306protocol: TCPtargetPort: 3306nodePort: 30011selector:app: devops-mysqltype: NodePortsessionAffinity: ClientIP     ###確保與客戶端的會話一致性
[root@master01 demo]# vim mysql.yaml
[root@master01 demo]# kubectl apply -f mysql.yaml 

[root@master01 home]# kubectl get svc,pod -n devops

總結

1.K8S集群中訪問流向

port:為service在clusterIP上暴露的端口

targetport:對應容器映射在pod上的端口

nodeport:可以通過在K8S集群外部使用nodeIP+nodePort來去訪問service

containerport:容器內部使用的端口

K8S集群內部:客戶端——clusterIP:port——通過target port——podIP:containerport

K8S集群外部:客戶端——nodeIP:nodeport——通過target port——podIP:containerport

2.語法格式

通過縮進表示層級關系

不能使用tab進行縮進,只能使用空格,一般開頭縮進2個空格

字符后縮進一個空格,比如冒號,逗號等

使用—表示新的yaml文件的開始

使用#表示注釋

3.yaml文件組成部署

(1)控制器定義

deployment:定義metadaea、spec、selector

通過yaml完成副本的定義,自主式的

(2)被控制對象

由哪一個控制器(自主式、deployment、statusfulset等)

4.常用字段的含義

如何快速編寫yaml

(1)第一種使用kubectl create 命令生成yaml文件

(2)第二種使用kubectl get 命令導出yaml文件

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/14602.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/14602.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/14602.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java入門基礎學習筆記44——String

為什么要學習String的處理呢? 開發中,對字符串的處理是非常常見的。 String是什么?可以做什么? java.lang.String 代表字符串。可以用來創建對象封裝字符串數據,并對其進行處理。 1、創建對象 2、封裝字符串數據 3…

Linux安裝zsh并配置oh-my-zsh

配置oh-my-zsh 查看當前shell安裝zsh切換到zsh配置ohmysh 查看當前shell cat /etc/shells# /etc/shells: valid login shells /bin/sh /bin/bash /usr/bin/bash /bin/rbash /usr/bin/rbash /bin/dash /usr/bin/dash安裝zsh sudo apt install zsh# /etc/shells: valid login s…

blender 烘焙渲染圖片,已經導出fbx,導出貼圖。插件生成圖片

1.新建一個模型。選擇資產瀏覽器的材質,并拖動到模型身上,如下圖。資產瀏覽器的材質可以網上找。 2.打開著色器面板。正下方著色器窗口中,點擊空白取消選擇,然后右擊-添加-著色器-原理化BSDF,右擊-添加-紋理-圖像紋理。…

報錯 Attempt to assign to const or readonly variable 前端 const

Attempt to assign to const or readonly variable 遇到這個錯是因為給const聲明的變量進行第2次賦值。 因為const聲明的變量只能進行一次賦值,即常量。 ES6標準引入了新的關鍵字 const 來定義常量,const 與 let 都具有塊級作用域。 const 定義的是常量…

寶塔Linux下安裝EMQX服務并設置匿名訪問

簡述 之前有在Windows和Linux下搭建過EMQX服務并且使用方面都沒問題,但那都是使用的用戶和密碼方式訪問,且前提都是通過瀏覽器進入EMQX的配置頁面設置的屬性; 但這次使用的是騰訊云租用的寶塔Liniux,由于沒有瀏覽器只能通過命令行方式修改EMQX配置以達到目的;由于事先沒看…

【博主推薦】HTML5實現520表白、情人節表白模板源碼

文章目錄 1.設計來源1.1 表白首頁1.2 甜蜜瞬間11.3 甜蜜瞬間21.4 甜蜜瞬間31.5 甜蜜瞬間41.6 甜蜜瞬間51.7 甜蜜瞬間61.8 永久珍藏 2.效果和源碼2.1 頁面動態效果2.2 頁面源代碼2.3 源碼目錄2.4 更多為愛表白源碼 3.源碼下載地址 作者:xcLeigh 文章地址:…

國內安裝Axure RP Extension for Chrome插件

1、到項目的當前目錄來 2、后綴改成.rar 3、解壓成文件夾 4、拖入chrome中 我這里直接準備好了文件 鏈接:https://pan.baidu.com/s/1V98tx5LgXZRoKY7XjnIcrA 提取碼:gh13

中國上市公司融資約束指數數據上市公司SA指數與WW指數(2000-2023年)

上市公司融資約束指數,是用來評估公司面臨的融資限制程度的工具。SA指數由Hadlock和Pierce開發,基于公司規模和年齡計算,其中較小且較年輕的公司通常會有更高的指數值,表明其融資約束較大。另一方面,WW指數由Whited和W…

Win11徹底關閉“同意個人數據跨境傳輸”

Win11徹底關閉“同意個人數據跨境傳輸” 1 關閉對話框2. 修改Microsoft.CloudExperienceHost.winmd 1 關閉對話框 SHIFTF10WinEWinR輸入taskmgr關閉Microsoft賬戶進程 2. 修改Microsoft.CloudExperienceHost.winmd 找到C:\Windows\SystemApps\Microsoft.Windows.CloudExperi…

【靜態分析】在springboot使用太阿(Tai-e)03

參考:使用太阿(Tai-e)進行靜態代碼安全分析(spring-boot篇三) - 先知社區 1. JavaApi 提取 1.1 分析 預期是提取controller提供的對外API,例如下圖中的/sqli/jdbc/vuln 先看一下如何用tai-e去獲取router…

淺談分布式系統

目錄 一、單機架構二、分布式架構1、應用服務與數據庫分離2、負載均衡3、數據庫讀寫分離4、引入緩存5、數據庫分庫分表6、引入微服務 一、單機架構 單機架構,只有一臺服務器,這個服務器負責所有工作。 絕大多數公司的產品,都是這種單機架構。…

[論文筆記]REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS

引言 今天帶來一篇經典論文REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS的閱讀筆記,論文中文意思是 在語言模型中協同推理和行動。 雖然大型語言模型(LLMs)在語言理解和互動決策任務中展現出強大的能力,但它們在推理(例如思維鏈提示)和…

Rust 中 Mutex 的用法

在 Rust 中,Mutex(互斥鎖)是用于同步并發訪問共享資源的機制。Rust 標準庫中的 Mutex 結構體位于 std::sync::Mutex 中,它提供了線程安全的數據訪問。Mutex 保證了在同一時間只有一個線程可以訪問被鎖定的數據。 以下是 Mutex 的…

畫圖工具之PlantUML插件使用

文章目錄 1 PlantUML插件1.1 引言1.2 什么是PlantUML1.3 PlantUML插件1.3.1 IntelliJ IDEA中插件1.3.2 VS Code中插件1.3.3 使用例子 1.4 PlantUML時序圖語法1.4.1 聲明參與者1.4.2 消息傳遞1.4.2.1 同步消息1.4.2.2 異步消息1.4.2.3 返回消息1.4.2.4 自調用 1.4.3 生命線&…

比特米盒2代刷入ARMBIAN

概述 因為最近在整家庭NAS,類似魔百盒之類的機頂盒無法內置硬盤,所以將目光盯上了比特米盒、私家云以及和逸云,海鮮市場一番對比下來也就比特米盒(CM2-B)的性價比最高,而且還支持雙盤位,所以采…

【大模型】fineturn Q-wen

github上下載qwen1_5源碼 修改finetun.sh 然后在路徑qwen1_5/examples/sft下修改finetun.sh, 內容如下 #!/bin/bash export CUDA_DEVICE_MAX_CONNECTIONS1 DIRpwd# Guide: # This script supports distributed training on multi-gpu workers (as well as single-worker trai…

批處理--將指定磁盤根目錄所有隱藏的文件(包括文件夾)去除隱藏屬性

如下是實現的腳本:-------------------------------------------------- :loopcd / set /p driverName"請輸入驅動器盤符(例如:C或c):"%driverName%: dir /AH %driverName%: pausefor /f "delims"…

Leetcode刷題2

文章目錄 前言尋找兩個正序數組的中位數1?? 雙指針快速排序2?? 第k小數解法 Z 字形變換1?? 個人解法2??巧妙解法13??巧妙解法2 字符串轉換整數 (atoi)1?? 常規方法2?? 作弊方法😫 整數轉羅馬數字1?? 常規方法:按照給定規則寫出判斷條件即…

前端面試題日常練-day32 【面試題】

題目 希望這些選擇題能夠幫助您進行前端面試的準備,答案在文末。 1. 在jQuery中,以下哪個選項用于獲取元素的文本內容? a) text() b) html() c) val() d) attr() 2. jQuery中,以下哪個選項用于在元素上添加一個自定義數據屬性…

感動心靈的聲音——帶情緒的AI配音技術在影視和廣告領域的應用

近年來,隨著人工智能技術的飛速發展,帶情緒的AI配音技術作為其中一項重要應用,正逐漸在影視和廣告行業展現其獨特的魅力和應用價值。傳統的配音工作不僅需要具備優秀的嗓音和表演能力,還要求配音演員能夠準確捕捉并表達角色的情感…