溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

幫助你駕馭 Kubernetes 的4個(gè)工具分別是怎么樣的

發(fā)布時(shí)間:2021-11-01 10:13:41 來源:億速云 閱讀:127 作者:柒染 欄目:系統(tǒng)運(yùn)維

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)幫助你駕馭 Kubernetes 的4個(gè)工具分別是怎么樣的,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

在  Kubernetes  中,你必須學(xué)習(xí)最小的一組原語來建模應(yīng)用程序。我想強(qiáng)調(diào)這一點(diǎn):你需要學(xué)習(xí)的這組原語是最簡單的原語集,你可以通過它們學(xué)習(xí)如何實(shí)現(xiàn)生產(chǎn)級的應(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)用程序所需要的東西。

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

1、Katacoda

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

幫助你駕馭 Kubernetes 的4個(gè)工具分別是怎么樣的

OpenShift Playground

幫助你駕馭 Kubernetes 的4個(gè)工具分別是怎么樣的

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í)資源。

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)。

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

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

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

podman generate kube two-pizza

輸出:

# Generation of Kubernetes YAML is still under development! # # Save the output of this file and use kubectl create -f to import # it into Kubernetes. # # Created with podman-1.3.1 apiVersion: v1 kind: Pod metadata:   creationTimestamp: "2019-06-07T08:08:12Z"   labels:     app: two-pizza   name: two-pizza spec:   containers:   - command:     - /bin/sh     - -c     - bash -c 'while true; do /usr/bin/nc -l -p 3306 < /srv/hello.txt; done'     env:     - name: PATH       value: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin     - name: TERM       value: xterm     - name: HOSTNAME     - name: container       value: oci     image: quay.io/fatherlinux/two-pizza:latest     name: two-pizza     resources: {}     securityContext:       allowPrivilegeEscalation: true       capabilities: {}       privileged: false       readOnlyRootFilesystem: false     tty: true     workingDir: / status: {} --- apiVersion: v1 kind: Service metadata:   creationTimestamp: "2019-06-07T08:08:12Z"   labels:     app: two-pizza   name: two-pizza spec:   selector:     app: two-pizza   type: NodePort status:   loadBalancer: {}

你現(xiàn)在有了一些可以的工作 Kubernetes YAML,你可以用它作為練習(xí)的起點(diǎn)來學(xué)習(xí)、調(diào)整等等。-s 標(biāo)志可以為你創(chuàng)造一項(xiàng)服務(wù)。Brent Baude  甚至致力于添加卷/持久卷斷言等新功能。如果想進(jìn)一步深入,請?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)用程序:

oc new-project -n example 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  中)將由若干新的已定義資源填充。

oc get all

輸出:

NAME                                READY     STATUS      RESTARTS   AGE pod/cakephp-mysql-example-1-build   0/1       Completed   0          4m pod/cakephp-mysql-example-1-gz65l   1/1       Running     0          1m pod/mysql-1-nkhqn                   1/1       Running     0          4m NAME                                            DESIRED   CURRENT   READY     AGE replicationcontroller/cakephp-mysql-example-1   1         1         1         1m replicationcontroller/mysql-1                   1         1         1         4m NAME                            TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE service/cakephp-mysql-example   ClusterIP   172.30.234.135   <none>        8080/TCP   4m service/mysql                   ClusterIP   172.30.13.195    <none>        3306/TCP   4m NAME                                                       REVISION   DESIRED   CURRENT   TRIGGERED BY deploymentconfig.apps.openshift.io/cakephp-mysql-example   1          1         1         config,image(cakephp-mysql-example:latest) deploymentconfig.apps.openshift.io/mysql                   1          1         1         config,image(mysql:5.7) NAME                                                   TYPE      FROM      LATEST buildconfig.build.openshift.io/cakephp-mysql-example   Source    Git       1 NAME                                               TYPE      FROM          STATUS     STARTED         DURATION build.build.openshift.io/cakephp-mysql-example-1   Source    Git@47a951e   Complete   4 minutes ago   2m27s NAME                                                   DOCKER REPO                                                      TAGS      UPDATED imagestream.image.openshift.io/cakephp-mysql-example   docker-registry.default.svc:5000/example/cakephp-mysql-example   latest    About aminute ago NAME                                             HOST/PORT                                                                         PATH   SERVICES                PORT      TERMINATION   WILDCARD 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ǔ)完插件(如果有的話,請告訴我)。相反,我發(fā)現(xiàn)微軟的 VS Code 有一套殺手級的插件,可以完成 Kubernetes  資源的創(chuàng)建并提供樣板。

幫助你駕馭 Kubernetes 的4個(gè)工具分別是怎么樣的

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

幫助你駕馭 Kubernetes 的4個(gè)工具分別是怎么樣的

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

幫助你駕馭 Kubernetes 的4個(gè)工具分別是怎么樣的

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

這四個(gè)工具(如果算上兩個(gè)插件,則為六個(gè))將幫助你學(xué)習(xí)駕馭 Kubernetes,而不是構(gòu)造或裝備它。

上述就是小編為大家分享的幫助你駕馭 Kubernetes 的4個(gè)工具分別是怎么樣的了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI