中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

幫助你駕馭 Kubernetes 的 4 個(gè)工具

2021-02-17    分類: 網(wǎng)站建設(shè)

在本系列的第三篇文章中, Kubernetes 基礎(chǔ):首先學(xué)習(xí)如何使用 ,我強(qiáng)調(diào)你應(yīng)該學(xué)會(huì)使用 Kubernetes,而不是建造它。我還解釋說(shuō),在 Kubernetes 中,你必須學(xué)習(xí)最小的一組原語(yǔ)來(lái)建模應(yīng)用程序。我想強(qiáng)調(diào)這一點(diǎn):你需要學(xué)習(xí)的這組原語(yǔ)是最簡(jiǎn)單的原語(yǔ)集,你可以通過(guò)它們學(xué)習(xí)如何實(shí)現(xiàn)生產(chǎn)級(jí)的應(yīng)用程序部署(即高可用性 [HA]、多容器、多應(yīng)用程序)。換句話說(shuō),學(xué)習(xí) Kubernetes 內(nèi)置的原語(yǔ)集比學(xué)習(xí)集群軟件、集群文件系統(tǒng)、負(fù)載平衡器、讓人發(fā)瘋的 Apache 和 Nginx 的配置、路由器、交換機(jī)、防火墻和存儲(chǔ)后端更容易 —— 這些是你在傳統(tǒng)的 IT 環(huán)境(虛擬機(jī)或裸機(jī))中建模簡(jiǎn)單的 HA 應(yīng)用程序所需要的東西。

1、Katacoda

無(wú)疑, Katacoda 是試駕 Kubernetes 集群的最簡(jiǎn)單方法。只需單擊一下,五秒鐘后就可以將基于 Web 的終端直接連接到正在運(yùn)行的 Kubernetes 集群中。這對(duì)于使用和學(xué)習(xí)來(lái)說(shuō)非常棒。我甚至將它用于演示和測(cè)試新想法。Katacoda 提供了一個(gè)完整的臨時(shí)環(huán)境,在你使用完畢后可以回收利用。


Katacoda 提供了一個(gè)臨時(shí)的環(huán)境和更深入的實(shí)驗(yàn)室環(huán)境。例如,我最近三四年主講的 Linux Container Internals Lab 是在 Katacoda 中構(gòu)建的。

Katacoda 在其主站點(diǎn)上維護(hù)了若干 Kubernetes 和云教程 并與 Red Hat 合作以支持了一個(gè) OpenShift 的專用學(xué)習(xí)門(mén)戶 。了解一下,它們是極好的學(xué)習(xí)資源。

當(dāng)你第一次學(xué)習(xí)駕駛翻斗車(chē)時(shí),最好先觀察一下其他人的駕駛方式。

2、Podman generate kube

podman generate kube 命令是一個(gè)很棒的子命令,可以幫助用戶自然地從運(yùn)行簡(jiǎn)單容器的簡(jiǎn)單容器引擎轉(zhuǎn)換到運(yùn)行許多容器的集群用例(正如我在 上篇文章 中所描述的那樣)。 Podman 通過(guò)讓你啟動(dòng)一個(gè)新的容器,然后導(dǎo)出這個(gè)可工作的 Kube YAML,并在 Kubernetes 中啟動(dòng)它來(lái)實(shí)現(xiàn)這一點(diǎn)??纯催@個(gè)(你可以在 Katacoda lab 中運(yùn)行它,它已經(jīng)有了 Podman 和 OpenShift)。

首先,請(qǐng)注意運(yùn)行容器的語(yǔ)法與 Docker 非常相似:

  1. podman run -dtn two-pizza quay.io/fatherlinux/two-pizza 

不過(guò)這個(gè)是其它容器引擎所沒(méi)有的:

  1. podman generate kube two-pizza 

輸出:

  1. # Generation of Kubernetes YAML is still under development! 
  2. # Save the output of this file and use kubectl create -f to import 
  3. # it into Kubernetes. 
  4. # Created with podman-1.3.1 
  5. apiVersion: v1 
  6. kind: Pod 
  7. metadata: 
  8.  creationTimestamp: "2019-06-07T08:08:12Z" 
  9.  labels: 
  10.  app: two-pizza 
  11.  name: two-pizza 
  12. spec: 
  13.  containers: 
  14.  - command: 
  15.  - /bin/sh 
  16.  - -c 
  17.  - bash -c 'while true; do /usr/bin/nc -l -p 3306 < /srv/hello.txt; done' 
  18.  env: 
  19.  - name: PATH 
  20.  value: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 
  21.  - name: TERM 
  22.  value: xterm 
  23.  - name: HOSTNAME 
  24.  - name: container 
  25.  value: oci 
  26.  image: quay.io/fatherlinux/two-pizza:latest 
  27.  name: two-pizza 
  28.  resources: {} 
  29.  securityContext: 
  30.  allowPrivilegeEscalation: true 
  31.  capabilities: {} 
  32.  privileged: false 
  33.  readOnlyRootFilesystem: false 
  34.  tty: true 
  35.  workingDir: / 
  36. status: {} 
  37. --- 
  38. apiVersion: v1 
  39. kind: Service 
  40. metadata: 
  41.  creationTimestamp: "2019-06-07T08:08:12Z" 
  42.  labels: 
  43.  app: two-pizza 
  44.  name: two-pizza 
  45. spec: 
  46.  selector: 
  47.  app: two-pizza 
  48.  type: NodePort 
  49. status: 
  50.  loadBalancer: {} 

你現(xiàn)在有了一些可以的工作 Kubernetes YAML,你可以用它作為練習(xí)的起點(diǎn)來(lái)學(xué)習(xí)、調(diào)整等等。-s 標(biāo)志可以為你創(chuàng)造一項(xiàng)服務(wù)。 Brent Baude 甚至致力于 添加卷/持久卷斷言 等新功能。如果想進(jìn)一步深入,請(qǐng)?jiān)?Brent 的博客文章《 Podman 現(xiàn)在可以輕松過(guò)渡到 Kubernetes 和 CRI-O 》中了解他的工作。

3、oc new-app

oc new-app 命令非常強(qiáng)大。它是特定于 OpenShift 的,所以它在默認(rèn)的 Kubernetes 中不可用,但是當(dāng)你開(kāi)始學(xué)習(xí) Kubernetes 時(shí)它非常有用。讓我們從快速命令開(kāi)始創(chuàng)建一個(gè)相當(dāng)復(fù)雜的應(yīng)用程序:

  1. oc new-project -n example 
  2. oc new-app -f https://raw.githubusercontent.com/openshift/origin/master/examples/quickstarts/cakephp-mysql.json 

使用 oc new-app,你可以從 OpenShift 開(kāi)發(fā)人員那里偷取模板,并在開(kāi)發(fā)原語(yǔ)來(lái)描述你自己的應(yīng)用程序時(shí)擁有一個(gè)已知良好的起點(diǎn)。運(yùn)行上述命令后,你的 Kubernetes 命名空間(在 OpenShift 中)將由若干新的已定義資源填充。

  1. oc get all 

輸出:

  1. NAME READY STATUS RESTARTS AGE 
  2. pod/cakephp-mysql-example-1-build 0/1 Completed 0 4m 
  3. pod/cakephp-mysql-example-1-gz65l 1/1 Running 0 1m 
  4. pod/mysql-1-nkhqn 1/1 Running 0 4m 
  5. NAME DESIRED CURRENT READY AGE 
  6. replicationcontroller/cakephp-mysql-example-1 1 1 1 1m 
  7. replicationcontroller/mysql-1 1 1 1 4m 
  8. NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE 
  9. service/cakephp-mysql-example ClusterIP 172.30.234.135 <none> 8080/TCP 4m 
  10. service/mysql ClusterIP 172.30.13.195 <none> 3306/TCP 4m 
  11. NAME REVISION DESIRED CURRENT TRIGGERED BY 
  12. deploymentconfig.apps.openshift.io/cakephp-mysql-example 1 1 1 config,image(cakephp-mysql-example:latest) 
  13. deploymentconfig.apps.openshift.io/mysql 1 1 1 config,image(mysql:5.7) 
  14. NAME TYPE FROM LATEST 
  15. buildconfig.build.openshift.io/cakephp-mysql-example Source Git 1 
  16. NAME TYPE FROM STATUS STARTED DURATION 
  17. build.build.openshift.io/cakephp-mysql-example-1 Source Git@47a951e Complete 4 minutes ago 2m27s 
  18. NAME DOCKER REPO TAGS UPDATED 
  19. imagestream.image.openshift.io/cakephp-mysql-example docker-registry.default.svc:5000/example/cakephp-mysql-example latest About aminute ago 
  20. NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD 
  21. route.route.openshift.io/cakephp-mysql-example cakephp-mysql-example-example.2886795271-80-rhsummit1.environments.katacoda.com cakephp-mysql-example <all> None 

這樣做的好處是你可以刪除 Pod,觀察復(fù)制控制器如何重新創(chuàng)建它們,縮放 Pod 等等。你可以使用模板并將其更改為其他應(yīng)用程序(這是我第一次啟動(dòng)時(shí)所做的)。

4、Visual Studio Code

我把我最喜歡的放在最后。我的大部分工作都使用 vi ,但我從來(lái)沒(méi)有為 Kubernetes 找到一個(gè)好的語(yǔ)法高亮器和代碼補(bǔ)完插件(如果有的話,請(qǐng)告訴我)。相反,我發(fā)現(xiàn)微軟的 VS Code 有一套殺手級(jí)的插件,可以完成 Kubernetes 資源的創(chuàng)建并提供樣板。


首先,安裝上圖中顯示的 Kubernetes 和 YAML 插件。

然后,你可以從頭開(kāi)始創(chuàng)建新的 YAML 文件,并自動(dòng)補(bǔ)完 Kubernetes 資源。上面的示例顯示了一個(gè)服務(wù)。

當(dāng)你使用自動(dòng)補(bǔ)完并選擇服務(wù)資源時(shí),它會(huì)填充該對(duì)象的一些模板。當(dāng)你第一次學(xué)習(xí)使用 Kubernetes 時(shí),這非常棒。你可以構(gòu)建 Pod、服務(wù)、復(fù)制控制器、部署等。當(dāng)你從頭開(kāi)始構(gòu)建這些文件甚至修改你使用 podman generate kube 創(chuàng)建的文件時(shí),這是一個(gè)非常好的功能。

總結(jié)

這四個(gè)工具(如果算上兩個(gè)插件,則為六個(gè))將幫助你學(xué)習(xí)駕馭 Kubernetes,而不是構(gòu)造或裝備它。在本系列的最后一篇文章中,我將討論為什么 Kubernetes 如此適合運(yùn)行這么多不同的工作負(fù)載。

當(dāng)前題目:幫助你駕馭 Kubernetes 的 4 個(gè)工具
文章地址:http://www.rwnh.cn/news14/101364.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開(kāi)發(fā)網(wǎng)站維護(hù)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、定制網(wǎng)站、App開(kāi)發(fā)、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷(xiāo)型網(wǎng)站建設(shè)
噶尔县| 永善县| 夏河县| 定南县| 白玉县| 定州市| 罗江县| 侯马市| 洛南县| 凌源市| 即墨市| 酒泉市| 通化县| 永年县| 都昌县| 钟祥市| 洪湖市| 洛宁县| 津市市| 木兰县| 昌吉市| 宜春市| 区。| 柏乡县| 庆元县| 兰考县| 吴川市| 达日县| 博湖县| 防城港市| 安仁县| 大竹县| 来安县| 和林格尔县| 清水县| 贞丰县| 沁阳市| 镇巴县| 西宁市| 苍溪县| 化德县|