yaml檔案編寫示例及解析

2021-09-29 17:19:51 字數 1426 閱讀 4129

apiversion: v1

kind: service

metadata:

name: hello-service

spec:

type:nodeport

selector:

port:

- protocol: tcp

port: 80

targetport: 8080

nodeport: 30008

apiversion: 當前yaml使用的api版本。

kind:宣告物件型別。

metadata中的name定義了service的名稱。

spec:service的規則宣告。

其中的type宣告了service的型別。

nodeport型別表示在每個節點上暴露乙個tcp port,將服務暴露在k8s的集群之外,集群外部也可以訪問該服務。

selector:通過label匹配後端的pod的選項。pods是一組pod。

port是乙個虛擬的service埠,並不是真實存在的。

targetport是後端容器監聽的埠。

nodeport是每個節點監聽的埠。

在describe檢視service詳情時,可以檢視endpoint。如果endpoint對應的值是none,說明沒有乙個pod是為他服務的。這種情況發生在建立了service,但沒有建立後端pod。

通過deployment控制器進行後端pod的部署。

kind: deployment

metadata:

name: hello-deployment

labels:

spec:

replicas: 2

template:

metadata:

labels:

spec:

containers:

- name: hello-k8s

image:###

imagepullpolicy: always

ports:

- containerport:8080

replicas:副本個數。deployment部署後k8s集群裡有兩個pod在執行。

template:pod的模板配置。

每乙個pod都會基於該模板進行建立。這裡的labels很重要。因為service中的selector就是通過這個label來匹配pod 的。

spec:pod的規格資訊,主要定義了容器的資訊。定義了容器的名字,容器的映象和映象的拉取策略。containerport是pod暴露在集群網路的埠。

服務請求的自動負載均衡:k8s會自動將服務的請求負載均衡到後端的pod上。

服務伸縮:業務有波峰波谷。在波谷的時候降低pod的數量以節省資源的消耗。在波峰的時候新增副本的數量,提交的服務請求也會被負載均衡到新的pod中。

go解析yaml檔案示例

yaml檔案已經成為配置的一種主要格式,因此各種語言都提供了相應的解析類庫,本文就以go語言中常用的yaml解析庫 gopkg.in yaml為例,簡單展示一下如何解析yaml檔案 具體 在這裡 1,直接將yaml檔案內容解析為我們定義好的struct,這種簡單方便,想獲取對應值,可以直接獲取。2,...

yaml陣列解析 解析動態Yaml檔案

我有乙個yaml檔案,當前寫為 keys key secret dog values username shiba password inu key secret cat values dbhost localhost words meow 但是,此yaml檔案經常更改,因此每次可以使用不同的值新增...

python解析yaml檔案

yaml是乙個可讀性高,用來表達資料序列的格式。yaml引用了其他多種語言,包括 c語言 python perl,並從xml 電子郵件的資料格式中獲得靈感。目前已經有數種程式語言或指令碼語言支援 或者說解析 這種語言。yaml的語法和其他高階語言類似,並且可以簡單表達清單 雜湊表,標量等資料形態。它...