自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

系統(tǒng) Linux 新聞
學(xué)習(xí)如何駕馭 Kubernetes 比如何建造它更重要,這些工具可以幫助你更快上路。

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

[[270709]]

在這第四篇文章中,我將分享一些有助于你學(xué)習(xí)快速駕馭 Kubernetes 的工具。

1、Katacoda

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

OpenShift Playground

OpenShift Playground

Kubernetes Playground

Kubernetes PlaygroundKatacoda 提供了一個(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í)門戶。了解一下,它們是極好的學(xué)習(xí)資源。

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

2、Podman generate kube

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

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

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

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

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

3、oc new-app

oc new-app 命令非常強(qiáng)大。它是特定于 OpenShift 的,所以它在默認(rèn)的 Kubernetes 中不可用,但是當(dāng)你開始學(xué)習(xí) Kubernetes 時(shí)它非常有用。讓我們從快速命令開始創(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 開發(fā)人員那里偷取模板,并在開發(fā)原語來描述你自己的應(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,但我從來沒有為 Kubernetes 找到一個(gè)好的語法高亮器和代碼補(bǔ)完插件(如果有的話,請(qǐng)告訴我)。相反,我發(fā)現(xiàn)微軟的 VS Code 有一套殺手級(jí)的插件,可以完成 Kubernetes 資源的創(chuàng)建并提供樣板。

VS Code plugins UI

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

Autocomplete in VS Code

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

VS Code autocomplete filling in boilerplate for an object

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

總結(jié)

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

責(zé)任編輯:華軒 來源: Linux中國
相關(guān)推薦

2019-09-16 08:26:13

Kubernetes工具Katacoda

2018-03-13 10:00:14

開源工具Kubernetes

2014-03-17 09:57:54

2021-03-26 09:33:43

云原生工具云計(jì)算軟件產(chǎn)品

2023-06-19 15:36:30

JavaScrip技巧開發(fā)

2017-02-16 10:45:57

桌面Wiki

2020-04-07 14:00:48

BugTypeScript前端

2012-12-27 09:49:21

Web響應(yīng)式

2019-05-24 08:19:59

2023-09-01 07:31:41

工具工具類網(wǎng)站

2021-09-07 05:48:47

個(gè)人信息數(shù)據(jù)安全法數(shù)據(jù)安全

2018-05-24 13:35:22

數(shù)據(jù)分析ETL工具處理

2025-02-18 10:56:18

2022-03-01 20:20:18

云遷移云計(jì)算

2020-01-08 14:45:38

Kubernetes存儲(chǔ)架構(gòu)

2022-10-08 14:26:09

開發(fā)Web工具

2019-06-18 07:15:22

Linux拼寫look命令

2025-01-13 00:26:53

2019-04-16 13:30:01

開源工具Sweet Home

2015-12-14 10:01:04

開源工具音樂制作
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)