Kubernetes 學(xué)習(xí)筆記(三)--- 資源清單定義入門

目錄

一砌们、K8S中常見(jiàn)的資源
二、創(chuàng)建資源清單
    2.1 創(chuàng)建資源的方法:
    2.2 常用資源的配置清單
    2.3 利用資源清單創(chuàng)建Pod
    2.4 kubectl命令管理資源有三種用法

一嘉熊、K8S中常見(jiàn)的資源

Kubernetes中把資源實(shí)例化以后稱之為對(duì)象非驮,這里先介紹K8S中常見(jiàn)的核心資源有哪些:

  • 工作負(fù)載型資源(workload):Pod壕鹉、ReplicaSet垄开、Deployment琴许、StatefulSet、DaemonSet溉躲、Job榜田、CronJob。(ReplicationController在v1.11版本被廢棄)
  • 服務(wù)發(fā)現(xiàn)及負(fù)載均衡型資源(ServiceDiscovery锻梳、LoadBalance) : Service 箭券、Ingress, ...
  • 配置與存儲(chǔ)型資源: Volume(存儲(chǔ)卷)唱蒸、CSI(容器存儲(chǔ)接口邦鲫,可以擴(kuò)展各種各樣的第三方存儲(chǔ)卷)
    • 特殊類型的存儲(chǔ)卷:ConfigMap(當(dāng)配置中心來(lái)使用的資源類型)、Secret(保存敏感數(shù)據(jù))神汹、DownwardAPI(把外部環(huán)境中的信息輸出給容器)

以上這些資源都是配置在名稱空間級(jí)別。

  • 集群級(jí)資源(都是配置在名): Namespace古今、Node屁魏、Role、ClusterRole捉腥、RoleBinding(角色綁定)氓拼、ClusterRoleBinding(集群角色綁定)、
  • 元數(shù)據(jù)型資源:HPA抵碟、PodTemplate(Pod模板桃漾,用于讓控制器創(chuàng)建Pod時(shí)使用的模板。)拟逮、LimitRange(用來(lái)定義硬件資源限制的)

下面是利用資源清單創(chuàng)建一個(gè)Pod的資源清單內(nèi)容:

[root@k8s-master ~]# kubectl get pod myapp-848b5b879b-6mq5c -o yaml
[root@k8s-master ~]# kubectl get pod myapp-848b5b879b-6mq5c -o yaml
apiVersion: v1      # K8S API版本撬统,應(yīng)該由兩部分組成:group/version,group省略表示默認(rèn)為core
kind: Pod           # 資源類別: Pod敦迄、Deployment恋追、Service等等 
metadata:           # 資源元數(shù)據(jù)
  creationTimestamp: 2018-09-26T11:49:23Z
  generateName: myapp-848b5b879b-
  labels:
    pod-template-hash: "4046164356"
    run: myapp
  name: myapp-848b5b879b-6mq5c
  namespace: default
  ownerReferences:
  - apiVersion: apps/v1
    blockOwnerDeletion: true
    controller: true
    kind: ReplicaSet
    name: myapp-848b5b879b
    uid: e1f7b7be-c17d-11e8-8968-000c29eced73
  resourceVersion: "117793"
  selfLink: /api/v1/namespaces/default/pods/myapp-848b5b879b-6mq5c
  uid: 367b77fc-c182-11e8-8968-000c29eced73
spec:             # specifications, 資源規(guī)格。(定義資源對(duì)象期望的狀態(tài))罚屋,這個(gè)是最重要的字段苦囱,用于規(guī)定接下來(lái)要?jiǎng)?chuàng)建的資源對(duì)象應(yīng)該擁有的特性。然后依靠控制器確保這些特性能夠被滿足脾猛。
  containers:
  - image: ikubernetes/myapp:v1
    imagePullPolicy: IfNotPresent
    name: myapp
    resources: {}
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: default-token-rqmtb
      readOnly: true
  dnsPolicy: ClusterFirst
  nodeName: k8s-node1.fhw.com
  priority: 0
  restartPolicy: Always
  schedulerName: default-scheduler
  securityContext: {}
  serviceAccount: default
  serviceAccountName: default
  terminationGracePeriodSeconds: 30
  tolerations:        # 容忍度撕彤,能夠容忍哪些污點(diǎn)
  - effect: NoExecute
    key: node.kubernetes.io/not-ready
    operator: Exists
    tolerationSeconds: 300
  - effect: NoExecute
    key: node.kubernetes.io/unreachable
    operator: Exists
    tolerationSeconds: 300
  volumes:
  - name: default-token-rqmtb
    secret:
      defaultMode: 420
      secretName: default-token-rqmtb
status:             # 用于顯示這個(gè)資源對(duì)象當(dāng)前的狀態(tài),這個(gè)字段是只讀的猛拴。
  conditions:
  - lastProbeTime: null
    lastTransitionTime: 2018-09-26T11:49:23Z
    status: "True"
    type: Initialized
  - lastProbeTime: null
    lastTransitionTime: 2018-09-26T11:49:25Z
    status: "True"
    type: Ready
  - lastProbeTime: null
    lastTransitionTime: null
    status: "True"
    type: ContainersReady
  - lastProbeTime: null
    lastTransitionTime: 2018-09-26T11:49:23Z
    status: "True"
    type: PodScheduled
  containerStatuses:
  - containerID: docker://cf1a7d53dfe93b679ed3213a94ccc94974ee87514e6e1cf049904934e9795f4d
    image: ikubernetes/myapp:v1
    imageID: docker-pullable://ikubernetes/myapp@sha256:9c3dc30b5219788b2b8a4b065f548b922a34479577befb54b03330999d30d513
    lastState: {}
    name: myapp
    ready: true
    restartCount: 0
    state:
      running:
        startedAt: 2018-09-26T11:49:24Z
  hostIP: 192.168.100.136
  phase: Running
  podIP: 10.244.1.11
  qosClass: BestEffort
  startTime: 2018-09-26T11:49:23Z

命令:kubectl api-versions可以查看所有API 群組/版本

image.png

二羹铅、創(chuàng)建資源清單

2.1 創(chuàng)建資源的方法:

apiserver僅接收J(rèn)SON格式的資源定義瞧柔,利用yaml格式提供配置清單,apiserver可自動(dòng)將其轉(zhuǎn)為json格式睦裳,而后再提交并執(zhí)行造锅。

2.2 常用資源的配置清單

apiVersion: group/version
    $ kubectl api-versions

kind: 資源類別

metadata: 元數(shù)據(jù)
    name: 資源名稱
    namespace: 名稱空間
    labels: 標(biāo)簽,鍵值數(shù)據(jù)廉邑。數(shù)據(jù)大小有限制哥蔚。
    annotations: 注解,也是鍵值數(shù)據(jù)蛛蒙,但是它的數(shù)據(jù)沒(méi)有大小限制糙箍。

spec: 期望的狀態(tài),disired state牵祟,由用戶定義深夯,最重要。每種資源支持的字段不一樣诺苹。

status: 當(dāng)前狀態(tài)咕晋,current state, 本字段由K8S集群維護(hù)。

每個(gè)資源的引用PATH:
/api/GROUP/VERSION/namespace/NAMESPACE/TYPE/NAME (大寫(xiě)單詞替換為具體名稱)收奔,可以通過(guò)這個(gè)PATH獲取資源的信息掌呜。

查看某個(gè)資源類型支持的字段:
命令: kubectl explain <resource_type>.<fieldName>[.<fieldName>]

image.png

每個(gè)字段的值都標(biāo)記有對(duì)應(yīng)的類型:
字段標(biāo)記有-required-表示必選字段

值類型 簡(jiǎn)述
<string> 字符串
<[]string> 字符串列表坪哄,所有的列表數(shù)據(jù)都可以放在[]中质蕉。
<integer> 整數(shù)
<Object> 對(duì)象,也就是可以嵌套二級(jí)或三級(jí)字段翩肌。模暗。。
<[]Object> 對(duì)象列表念祭,
<map[string]string> 映射兑宇,多個(gè)k=v類型的json數(shù)組,也就是鍵值對(duì)棒卷,key=value顾孽,所有映射數(shù)據(jù)都可以直接放在{}中。
<boolean> 布爾值比规,true或false

2.3 利用資源清單創(chuàng)建Pod

先創(chuàng)建一個(gè)資源清單:

[root@k8s-master manifests]# cat pod-demo.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: pod-demo
  namespace: default
  labels:
    app: myapp
    tier: frontend
spec:
  containers:
  - name: myapp
    image: ikubernetes/myapp:v1
  - name: busybox
    image: busybox:latest
    command:
    - "/bin/sh"
    - "-c"
    - "sleep 3600"

執(zhí)行命令以創(chuàng)建Pod:

[root@k8s-master manifests]# kubectl create -f pod-demo.yaml 
pod/pod-demo created

如圖:


image.png

訪問(wèn)pod-demo pod中的myapp容器并查看其日志:

[root@k8s-master manifests]# curl 10.244.2.10
Hello MyApp | Version: v1 | <a href="hostname.html">Pod Name</a>
[root@k8s-master manifests]# 
[root@k8s-master manifests]# 
[root@k8s-master manifests]# kubectl logs pod-demo myapp
10.244.0.0 - - [27/Sep/2018:09:14:59 +0000] "GET / HTTP/1.1" 200 65 "-" "curl/7.29.0" "-"

刪除資源清單里面的資源:

[root@k8s-master manifests]# kubectl delete -f pod-demo.yaml 
pod "pod-demo" deleted

事實(shí)上使用kubectl命令管理資源有三種用法:

  • 命令式用法若厚,《Kubernetes 學(xué)習(xí)筆記(二)--- K8S應(yīng)用快速入門》中講的。
  • 命令式資源清單用法蜒什,就是本篇 2.3節(jié)《 利用資源清單創(chuàng)建Pod》测秸;
  • 聲明式資源清單。使用聲明式資源清單,可以確保資源盡可能的向我們聲明的狀態(tài)改變霎冯,這樣我們就可以隨時(shí)改變聲明铃拇,并隨時(shí)應(yīng)用。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末沈撞,一起剝皮案震驚了整個(gè)濱河市慷荔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌缠俺,老刑警劉巖显晶,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異壹士,居然都是意外死亡磷雇,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門躏救,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)唯笙,“玉大人,你說(shuō)我怎么就攤上這事盒使”谰颍” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵忠怖,是天一觀的道長(zhǎng)呢堰。 經(jīng)常有香客問(wèn)我,道長(zhǎng)凡泣,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任皮假,我火速辦了婚禮鞋拟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘惹资。我一直安慰自己贺纲,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布褪测。 她就那樣靜靜地躺著猴誊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪侮措。 梳的紋絲不亂的頭發(fā)上懈叹,一...
    開(kāi)封第一講書(shū)人閱讀 51,258評(píng)論 1 300
  • 那天,我揣著相機(jī)與錄音分扎,去河邊找鬼澄成。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的墨状。 我是一名探鬼主播卫漫,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼肾砂!你這毒婦竟也來(lái)了列赎?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤镐确,失蹤者是張志新(化名)和其女友劉穎包吝,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體辫塌,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡漏策,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了臼氨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掺喻。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖储矩,靈堂內(nèi)的尸體忽然破棺而出感耙,到底是詐尸還是另有隱情,我是刑警寧澤持隧,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布即硼,位于F島的核電站,受9級(jí)特大地震影響屡拨,放射性物質(zhì)發(fā)生泄漏只酥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一呀狼、第九天 我趴在偏房一處隱蔽的房頂上張望裂允。 院中可真熱鬧,春花似錦哥艇、人聲如沸绝编。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)十饥。三九已至,卻和暖如春祖乳,著一層夾襖步出監(jiān)牢的瞬間逗堵,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工凡资, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留砸捏,地道東北人谬运。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像垦藏,于是被迫代替她去往敵國(guó)和親梆暖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容