国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

使用Curl對Kubernetes進行調試!

云計算
Kubernetes是一個開源的、用于管理云平臺中多個主機上的容器化應用的系統。其目標是讓部署容器化的應用簡單并且高效(powerful),它提供了應用部署,規劃,更新,維護的一種機制。

 [[405740]]

本文轉載自微信公眾號「新鈦云服」,作者祝祥 。轉載本文請聯系新鈦云服公眾號。

Kubernetes是一個開源的、用于管理云平臺中多個主機上的容器化應用的系統。其目標是讓部署容器化的應用簡單并且高效(powerful),它提供了應用部署,規劃,更新,維護的一種機制。

Kubernetes一個核心的特點就是能夠自主的管理容器來保證云平臺中的容器按照用戶的期望狀態運行著(比如用戶想讓apache一直運行,用戶不需要關心怎么去做,Kubernetes會自動去監控,然后去重啟,新建,總之,讓apache一直提供服務)。

管理員可以加載一個微型服務,讓規劃器來找到合適的位置,同時,Kubernetes也系統提升工具以及人性化方面,讓用戶能夠方便的部署自己的應用(就像canary deployments)。

現在Kubernetes著重于不間斷的服務狀態(比如web服務器或者緩存服務器)和原生云平臺應用(Nosql),在不久的將來會支持各種生產云平臺中的各種服務,例如,分批,工作流,以及傳統數據庫。

對于有些人而言,Kubernetes是一個非常復雜調度系統。

…因為它很復雜,所以配置非常冗長。

…由于配置YAML太多,我們需要配合其他多種工具軟件來處理該配置。

但是,在本文中,我認為那些認為kubernetns復雜的人,是因為沒有找到合理的方式去學習以及使用kubernetns,就像早期的操作系統一樣。

Kubernetes對于如何管理配置有一個簡單而巧妙的方式,本文也將討論這種方式。

因為這種方式簡單,一致,所以我們可以管理比以往更多的配置!現在,我們不僅可以管理更多的配置,也可以構建復雜的系統。

當然,配置本身可能很復雜。因此,在這篇文章中,我將跳過配置。我將僅專注于kubernetes API機制以及如何探索該API。

以這種方式構建API可以使許多工具受益。

是啥方法?

為了解釋這種簡單而高效的方式,讓我們從Unix系統的最核心思想開始:

  1. Everything is a file. 

更確切地說,一切皆文本。Unix程序讀取和寫入文本。文件系統是用于查找要讀取的文本的API。并非所有這些文本都是文件!

  • ~/hello-world.txt 是一個文本文件
  • /dev/null 是一個空文本流
  • /proc 是用于閱讀有關進程的一組文本流

通過下面的漫畫圖,讓我們仔細看看/proc。

您可以通過以下的方式來查看以及了解系統上正在運行什么/proc,例如:

  • 正在運行多少個進程(ls /proc——列出進程)
  • 哪些命令行啟動了流程PID(cat /proc/PID/cmdline——獲取進程)
  • 進程PID正在使用多少內存(cat /proc/PID/status——獲取進程狀態)

什么是Kubernetes API?

Kubernetes API是集群系統中的重要組成部分,Kubernetes中各種資源(對象)的數據通過該API接口被提交到后端的持久化存儲(etcd)中,Kubernetes集群中的各部件之間通過該API接口實現解耦合,同時Kubernetes集群中一個重要且便捷的管理工具kubectl也是通過訪問該API接口實現其強大的管理功能的。

Kubernetes API 是基于資源的(RESTful)、通過 HTTP 提供的編程接口。API 支持通過標準的 HTTP 動詞(POST、PUT、PATCH、DELETE 和 GET) 檢視、創建、更新和刪除主要資源,為很多允許細粒度權限控制的對象提供子資源 (如將 Pod 綁定到節點上),并且出于便利性或效率考慮,支持并提供這些資源的 不同表示形式。

Kubernetes API 還通過 "watch" 和一致性的列表支持高效的資源變更通知, 從而允許其他組件對資源的狀態進行高效的緩存和同步。

Kubernetes API適用/proc于分布式系統。

一切都是基于HTTP的資源。我們可以使用一些HTTP GET命令探索每個Kubernetes資源。

如果要繼續進行下去,您需要熟悉以下的幾種工具:

  • kind ——一個使用 Docker 容器 “nodes” 運行 Kubernetes 集群的工具
  • curl ——用于發送HTTP請求的CLI工具
  • jq ——用于解析JSON的CLI工具
  • kubectl——命令管理Kubernetes 集群,幫助curl認證

下面,讓我們從快速創建集群開始:

  1. $ kind create cluster 
  2. Creating cluster "kind" ... 
  3. ✓ Ensuring node image (kindest/node:v1.19.1) 🖼 
  4. ✓ Preparing nodes 📦   
  5. ✓ Writing configuration 📜  
  6. ✓ Starting control-plane 🕹️  
  7. ✓ Installing CNI 🔌  
  8. ✓ Installing StorageClass 💾  
  9. Set kubectl context to "kind-kind" 
  10. You can now use your cluster with
  11.  
  12. kubectl cluster-info --context kind-kind 
  13.  
  14. Have a nice day! 👋 
  15.  
  16. $ kubectl proxy & 
  17. Starting to serve on 127.0.0.1:8001 

本質上kubectl proxy為訪問kubernetes apiserver的REST api充當反向代理角色,這里反向代理的作用與通常意義上的反向代理作用相同,比如提供統一入口進行訪問控制、監控、管理,在代理中管理后端,在代理中進行認證等。

當然可以不經過kubectl proxy反向代理直接訪問kubernetes apiserver的REST api,但是需要手動管理kubernetes apiserver的地址、手動獲取token、手動將token加請到請求的頭部,相對來說要繁瑣而已。

Kubernetes API比/proc具有更多的層次結構。按版本,名稱空間和資源類型將其分為多個文件夾。API路徑格式如下:

  1. /api/[version]/namespaces/[namespace]/[resource]/[name

在一個新的kind集群上,可以看到的命名空間kube-system中已經有一些Pod正在運行 。讓我們列出集群中的所有系統進程:

  1. $ curl -s http://localhost:8001/api/v1/namespaces/kube-system/pods | head -n 20 
  2. "kind""PodList"
  3. "apiVersion""v1"
  4. "metadata": { 
  5.   "selfLink""/api/v1/namespaces/kube-system/pods"
  6.   "resourceVersion""1233" 
  7. }, 
  8. "items": [ 
  9.   { 
  10.     "metadata": { 
  11.       "name""coredns-f9fd979d6-5zxtx"
  12.       "generateName""coredns-f9fd979d6-"
  13.       "namespace""kube-system"
  14.       "selfLink""/api/v1/namespaces/kube-system/pods/coredns-f9fd979d6-5zxtx"
  15.       "uid""a30e70cc-2b53-4511-a5de-57c80e5b68ad"
  16.       "resourceVersion""549"
  17.       "creationTimestamp""2021-03-04T15:51:21Z"
  18.       "labels": { 
  19.         "k8s-app""kube-dns"
  20.         "pod-template-hash""f9fd979d6" 

上述命令會返回大量的內容!我們可以使用jq來提取對象的名稱。

  1. $ curl -s http://localhost:8001/api/v1/namespaces/kube-system/pods | jq '.items[].metadata.name' 
  2. "coredns-f9fd979d6-5zxtx" 
  3. "coredns-f9fd979d6-bn6jz" 
  4. "etcd-kind-control-plane" 
  5. "kindnet-fcjkd" 
  6. "kube-apiserver-kind-control-plane" 
  7. "kube-controller-manager-kind-control-plane" 
  8. "kube-proxy-sn64n" 
  9. "kube-scheduler-kind-control-plane" 

/pods羅列出了所有的進程,就像ls /proc一樣。如果我們要查看一個特定的進程,可以查詢/pods/POD_NAME。

  1. $ curl -s http://localhost:8001/api/v1/namespaces/kube-system/pods/kube-apiserver-kind-control-plane | head -n 10 
  2. "kind""Pod"
  3. "apiVersion""v1"
  4. "metadata": { 
  5.   "name""kube-apiserver-kind-control-plane"
  6.   "namespace""kube-system"
  7.   "selfLink""/api/v1/namespaces/kube-system/pods/kube-apiserver-kind-control-plane"
  8.   "uid""a8f893b7-1cdb-48fd-9505-87d71c81adcb"
  9.   "resourceVersion""458"
  10.   "creationTimestamp""2021-03-04T15:51:17Z"

然后,我們可以再次使用jq來獲取特定字段。

  1. $ curl -s http://localhost:8001/api/v1/namespaces/kube-system/pods/kube-apiserver-kind-control-plane | jq '.status.phase' 
  2. "Running" 

kubectl又是怎么做的?

上面的所有操作本質上都是可以使用kubectl來完成。kubectl提供了更友好的界面。但是,如果您想知道kubectl正在調用什么API ,可以使用以下命令加上-v 6來運行它:

  1. $ kubectl get -v 6 -n kube-system pods kube-apiserver-kind-control-plane 
  2. I0304 12:47:59.687088 3573879 loader.go:375] Config loaded from file: /home/nick/.kube/config 
  3. I0304 12:47:59.697325 3573879 round_trippers.go:443] GET https://127.0.0.1:44291/api/v1/namespaces/kube-system/pods/kube-apiserver-kind-control-plane 200 OK in 5 milliseconds 
  4. NAME                               READY   STATUS   RESTARTS   AGE 
  5. kube-apiserver-kind-control-plane   1/1     Running   0         116m 

有關更高級別的調試,請使用-v 8來查看完整的響應結果。

最后:

本文的關鍵不是要拋棄kubectl而是使用curl來與Kubernetes進行交互。就像您不應該拋棄ps而僅使用ls / proc一樣。

但是我發現像這樣剖析Kubernetes有助于對系統的深入了解有很大的幫助:

  • 一切都是基于HTTP的資源。
  • 每個對象的讀取和寫入方式都相同。
  • 所有對象狀態都是可讀的。

就像我們可以將Unix工具一起管道化(例如jq)一樣,我們可以定義新的Kubernetes對象并將其與現有對象組合。

這些方式可能看起來會有點簡單,有點傻,但是卻往往是最有效的方式。

原文:https://blog.tilt.dev/2021/03/18/kubernetes-is-so-simple.html

祝祥

資深云計算架構師

OpenStack官方特邀講師

上萬臺云主機和幾十PB分布式存儲的建設管理經驗

 

責任編輯:武曉燕 來源: 新鈦云服
相關推薦

2021-05-06 09:33:32

OperatorKubernetes開源

2017-04-18 09:27:14

Visual StudNode.js調試

2014-05-14 00:50:18

JoyentNode

2011-08-22 09:59:16

2022-03-30 07:45:41

KyvernoAPI開源項目

2023-05-05 07:16:07

2021-05-09 22:48:40

SQL數據庫變量

2023-12-12 07:30:54

IstioWasm前端

2023-12-11 18:15:46

AnsibleMinikubeKubernetes

2022-06-21 08:03:49

RBAC 限制容器

2023-07-13 11:24:14

SQL優化賦值

2009-10-22 09:32:51

ghostlinux系統備份

2021-09-27 16:39:10

PythonGif壓縮

2022-08-15 15:16:20

機器學習圖片深度學習

2021-03-05 00:06:12

Docker容器內存

2021-09-26 00:44:22

帶寬Kubernetes持久卷

2022-06-08 07:36:03

LocustKubernete微服務

2022-03-18 08:48:35

Kubernetes臨時容器運維

2024-07-26 08:59:33

2019-12-12 13:50:27

strace追蹤系統調用Linux
點贊
收藏

51CTO技術棧公眾號

欧美福利精品| 欧美黑人狂野猛交老妇| 国产日韩一区二区在线| 乱码第一页成人| 青青久久av北条麻妃海外网| 日韩有吗在线观看| 精品久久人人做人人爰| 国内在线精品| 国产精品99一区二区| 永久免费精品影视网站| 夜色福利资源站www国产在线视频 夜色资源站国产www在线视频 | 一区二区三区国产盗摄| 欧美黄色片视频| 国产在线观看www| 欧美视频13p| 日本特黄a级片| 国产69精品久久久久777| 精品一区二区日本| 久久精品影视| 日本精品视频网站| 久久免费福利| 夜夜嗨av色一区二区不卡| 国产区在线观看| 色婷婷狠狠综合| 两个人hd高清在线观看| 国产精品久久久久久久久动漫 | 黑人精品xxx一区| 免费福利片在线观看| 成人福利视频在线| 亚洲日本精品| 爽好久久久欧美精品| 国产亚洲情侣一区二区无| 天天射综合网视频| 国产精品香蕉av| 精品久久视频| 国产精品久久久久久婷婷天堂| 亚洲人成网www| 97热精品视频官网| 国产精品久久久久av蜜臀| 欧美另类暴力丝袜| 91蜜桃臀久久一区二区| 国语对白做受69| 成人黄色av网址| 久久频这里精品99香蕉| 国产乱论精品| 69久久夜色精品国产7777| 国产亚洲精品美女久久| 97国产精品人人爽人人做| 极品国产人妖chinesets亚洲人妖| 欧美日韩国产成人高清视频| 国产成人精品亚洲线观看| 97在线观看视频| 女人丝袜激情亚洲| 国产欧美va欧美va香蕉在线| 在线中文字幕亚洲| 国产在线一区二| 日一区二区三区| 正在播放一区二区三区| 本田岬高潮一区二区三区| 免费无码av片在线观看| 亚洲欧美日韩久久精品| 日韩a在线观看| 日韩欧美国产不卡| 亚洲欧美韩国| 一区二区欧美日韩视频| 日本在线一区二区三区| 国产精品成人av性教育| 狠狠久久婷婷| 懂色av一区二区三区四区五区| 国产精品18久久久久久久久久久久| 女人天堂av手机在线| 夜夜嗨av一区二区三区中文字幕| 国产综合在线观看| 亚洲精品国产拍免费91在线| 国产综合色在线观看| 久久久久久九九九| 国产精品88久久久久久| 日本一区二区在线视频观看| av中文一区二区三区| 色婷婷av金发美女在线播放| 欧美一区二区三区喷汁尤物| 中文字幕日本一区| 国产精品久久久久国产a级| 久久精品五月| 北条麻妃在线一区| 在线视频欧美精品| 欧美日韩国产片| 这里只有精品视频在线观看| 牛牛精品视频在线| 日韩欧美国产电影| 国产一级精品aaaaa看| 蜜桃一区二区三区| 成人91免费视频| 日韩黄色免费网站| 一区二区在线观看网站| zzijzzij亚洲日本少妇熟睡| 国产又大又黄又粗的视频| 欧美日韩免费在线观看| av中文在线资源库| 91黑丝在线观看| 亚洲综合社区| 国产精品亚洲a| 欧美日韩国产综合久久| **欧美日韩在线| 粉嫩高清一区二区三区精品视频| 久久精品av麻豆的观看方式| 婷婷色播视频| 在线成人免费观看| 久久这里只有精品一区二区| 欧美亚洲免费高清在线观看| 成人黄色综合网站| 男人久久精品| 日日摸夜夜添一区| 久久影院100000精品| 日本高清xxxx| 精品免费在线观看| 国产成人视屏| 亚欧洲精品在线视频免费观看| 一区二区三区色| 久久日本片精品aaaaa国产| 国产精品久久久久久久天堂第1集| 久久精品亚洲乱码伦伦中文| 在线看女人毛片| 国产精品一区二区久久久| a在线播放不卡| 搞黄网站在线观看| 国产精品高潮在线| 99久久精品情趣| 污视频网站免费在线观看| 国产伦精品一区二区三区照片| 欧美激情一区二区| 伊色综合久久之综合久久| 一区二区不卡在线视频 午夜欧美不卡'| 狠狠做深爱婷婷久久综合一区| 欧美1区2区3| 国产成人永久免费视频| 欧美日韩国产美女| 国产一区二区三区四区五区| 人妻久久久一区二区三区| 91精品国产手机| 欧美成人高清| 天天综合网久久| 中文字幕精品网| 成人av午夜电影| a毛片在线观看| www.久久草| 亚洲成a人片综合在线| 亚洲一区二区三区在线免费| 成人黄色片免费| 亚洲国产精品一区二区三区| 亚洲一区二区伦理| 国产一二在线观看| 国产在线观看一区二区三区 | 人人在线97| 97国产一区二区精品久久呦| 91浏览器在线视频| 色婷婷成人网| 久久人人爽人人爽人人av| 亚洲精品久久久久久久久久久久| 日精品一区二区| www欧美xxxx| 在线码字幕一区| 亚洲精品网站在线播放gif| 久久精品国产色蜜蜜麻豆| 高清毛片在线观看| 97干在线视频| 欧美激情啊啊啊| 亚洲六月丁香色婷婷综合久久| 国产一区二区三区天码| 天堂v视频永久在线播放| 97超碰资源| 在线播放国产精品二区一二区四区 | 久久精品国产理论片免费| 欧美高清激情brazzers| 国产精品一国产精品k频道56| 国产精品剧情| 一区二区免费在线视频| 国产小视频国产精品| www国产精品av| 亚洲区小说区图片区qvod| 日韩一区av| 国内一区在线| 国产手机视频精品| 91毛片在线观看| 精品国产乱码| 国产视频在线播放| 天天在线免费视频| 久久精品视频在线| 99精品在线观看视频| 欧美三级一区| av三级在线播放| 国产精品女人久久久久久| 精品欧美国产一区二区三区| 亚洲免费一区二区| 最新中文字幕在线播放| 免费 成 人 黄 色| 国产精品久久久久久久久久新婚| 欧美性色黄大片| 成人一区二区三区在线观看 | 在线视频福利一区|