真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何利用K8S技術(shù)進(jìn)行K8S資源控制

如何利用K8S技術(shù)進(jìn)行K8S資源控制,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

為高淳等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及高淳網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、高淳網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

私有云K8S資源控制原理

基于前面系列文章的詳細(xì)闡述,我們已經(jīng)可以手工去K8S集群的命令行下將CentOS 7.4操作系統(tǒng)的Docker鏡像啟動(dòng)起來,然后用戶可以通過SSH登錄到CentOS容器之中進(jìn)行使用。但實(shí)際使用過程中不同的用戶不可能每次都手動(dòng)去命令行啟動(dòng)一個(gè)CentOS鏡像,然后用命令去查看該容器的IP地址和端口是多少,然后再通過ssh去連接。我們最好可以將Docker容器的啟動(dòng)、查詢、刪除等再封裝一層,然后通過WEB頁面去提供給用戶操作,這才符合用戶行為需求!

由于在我們的實(shí)踐中Docker容器是放在kubernetes集群中進(jìn)行管理,所以這里的資源控制涉及的資源主要就是kubernetes的資源,如Pod、RC、Service等。

kubernetes中的Master節(jié)點(diǎn)運(yùn)行kube-apiserver模塊,該模塊對(duì)外提供restful接口,我們可以基于該接口進(jìn)行編程,從而完成對(duì)集群資源的控制管理、如Pod、RC、Service等的申請(qǐng)、查詢、刪除等任務(wù)。

要CRUD一個(gè) kubernetes 資源,比如一個(gè) pod,首先要知道和 kubernetes 集群交互的接口。在 kubernetes 的 master 節(jié)點(diǎn)上安裝有 kubectl 客戶端程序,該程序面向用戶提供命令行接口,供用戶和 kubernetes 集群交互。 kubectl 將用戶命令通過 restful 接口傳送給 apiserver,從而進(jìn)行資源的增、刪、改等操作。該過程可以示意如下:

如何利用K8S技術(shù)進(jìn)行K8S資源控制

原理講完了,接下來講講代碼級(jí)別如何實(shí)現(xiàn)。


K8S資源控制客戶端

總結(jié)上文不難看出,k8s相關(guān)資源的CRUD控制可以通過restful接口來實(shí)現(xiàn)。要使用Kubernetes REST API編寫應(yīng)用程序,當(dāng)下大多語言都可以很方便地去實(shí)現(xiàn)HTTP請(qǐng)求來操作kubernetes的restful接口從而控制和查詢資源,但本文主要是利用已有的kubernetes客戶端來更加優(yōu)雅地實(shí)現(xiàn)kubernetes的資源控制。你不需要自己編寫API來調(diào)用、請(qǐng)求/響應(yīng)等類型,可以直接使用現(xiàn)成的客戶端庫來實(shí)現(xiàn)。

k8s的客戶端開源項(xiàng)目有很多,官方有支持,社區(qū)也維護(hù)了很多。

官方支持的Kubernetes客戶端庫比較有限,有下面幾種:

如何利用K8S技術(shù)進(jìn)行K8S資源控制

社區(qū)維護(hù)的客戶端庫則更加豐富,基本熱門的編程語言都支持,下面的這些Kubernetes API客戶端庫由社區(qū)創(chuàng)建者維護(hù),Kubernetes團(tuán)隊(duì)不會(huì)提供支持和維護(hù):

如何利用K8S技術(shù)進(jìn)行K8S資源控制

本實(shí)踐選用的是Fabric8的k8s-client,基于Java實(shí)現(xiàn)。

下面就基于該Clinet講講代碼級(jí)別的實(shí)現(xiàn)


K8S資源控制代碼實(shí)現(xiàn)舉例

下面結(jié)合代碼來闡述一下Fabric8常用的k8s資源控制操作:

  • 創(chuàng)建K8S客戶端

String namespace = "default";    // namespace名
String master = "http://XXXX/";  // 配置為你的k8s集群的主節(jié)點(diǎn)地址
Config config = new ConfigBuilder().withMasterUrl(master).build();
KubernetesClient client = new DefaultKubernetesClient(config);

接下來對(duì)K8S資源的控制、查詢等操作基本都靠該client來完成!

  • 創(chuàng)建Pod

我們從一個(gè)pod.yaml文件來創(chuàng)建Pod資源:

  List resources = client.load(new FileInputStream(fileName)).get();  // fileName為一個(gè)外部的pod.yaml文件
  if (resources.isEmpty()) {
	System.err.println("No resources loaded from file: " +fileName);
	return;
  }
  HasMetadata resource = resources.get(0);
  if (resource instanceof Pod){
	Pod pod = (Pod) resource;
	System.out.println("Creating pod in namespace " + namespace);
	NonNamespaceOperation> pods = client.pods().inNamespace(namespace);
	Pod result = pods.create(pod);  // 此處創(chuàng)建pod資源?。?!
	System.out.println("Created pod " + result.getMetadata().getName());
  } else {
	System.err.println("Loaded resource is not a Pod! " + resource);
  }
  • 刪除Pod

刪除很簡單,只要知道Pod所在的namespace和name,一行代碼即可搞定

client.pods().inNamespace("namespace名字").withName("pod名").delete();
  • 查詢Pod

查詢Pod的log日志并于控制臺(tái)打?。?/p>

client.pods().inNamespace("namespace名字").withName("pod名").tailingLines(10).watchLog(System.out))

欲查詢Pod的一些其他信息,可以參考創(chuàng)建Pod步驟中的代碼:

Pod result = pods.create(pod);  // 此處創(chuàng)建pod資源?。?!
System.out.println("Created pod " + result.getMetadata().getName()); // 類似于此處,除了獲取Pod的名字外還可以獲取很多類似信息
  • 修改Pod配置

Pod updatedPod = client.pods().inNamespace("namespace名字").withName("pod名").edit()
          .editMetadata()
          .addToLabels("server2", "nginx2")
          .and().done();
log("Replaced testPod:", updatedPod);

上文從創(chuàng)建一個(gè)K8S客戶端開始比較完整地介紹了一個(gè)Pod資源的CRUD操作,限于篇幅原因,其他資源如RC、Service、Deployment等等的增刪改查操作都類似,只是名字不同而已,其接口稍微類比一下Pod即可寫出對(duì)應(yīng)的資源控制代碼,此處不再贅述了,舉一反三很重要。

看完上述內(nèi)容,你們掌握如何利用K8S技術(shù)進(jìn)行K8S資源控制的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


分享題目:如何利用K8S技術(shù)進(jìn)行K8S資源控制
網(wǎng)頁鏈接:http://weahome.cn/article/pceege.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部