歡迎光臨
每天分享高質量文章

使用Kubernetes不得不知道的四大神器!

開源最前線(ID:OpenSourceTop) 編譯

編譯自:https://opensource.com/article/19/6/tools-drive-kubernetes

想要精通Kubernetes,你最好學習一些基本型別的Kubernetes構建的應用程式,學習最簡單的原語集,你可以透過它們學習如何實現生產級的應用程式部署(即高可用性 [HA]、多容器、多應用程式)。

 

本文,猿妹將和大家分享4個有助於你快速靈活使用Kubernetes的工具

 

1、Katacoda

 

Katacoda無疑是測試Kubernetes叢集最簡單的方法。只需單擊滑鼠,就可以將基於web的終端直接插入到正在執行的Kubernetes叢集。Katacoda不僅可以用於學習,娛樂也是可以的,我甚至用它來演示和測試新想法,它提供了一個完整的臨時環境,用完還能回收

 

 

Katacoda有一個更高階的實驗環境,我在過去幾年裡執行的Linux Container Internals Lab 都是在 Katacoda 中構建的

 

Katacoda在其主站點上維護了大量Kubernetes和雲教程,並與Red Hat合作支援OpenShift的學習門戶。這兩者都是很好的學習資源。

 

2、Podman generate kube

 

podman generate kube命令是一個很好的子命令,它幫助使用者從執行簡單容器的簡單容器引擎過渡到多容器的叢集。Podman透過讓你啟動幾個容器,然後匯出Kube YAML,併在Kubernetes中啟動它們。看看這個(你可以在這個Katacoda Lab執行它,其中已經有Podman和OpenShift)。

 

首先,執行容器的語法與Docker驚人地相似:

 

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

 

但這個是其它容器引擎實現不了的:

 

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     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: {}

 

如今,你已經有了一些可執行的作Kubernetes YAML,你可以透過它來學習練習等,-s 標誌可以為你創造一項服務。布倫特•博德(Brent Baude)依然在不斷新增新功能。想要更深入地瞭解,請檢視他的部落格文章

 

3、oc new-app

 

oc new-app命令非常強大。它是特定於openshift的,因此在預設的Kubernetes中不可用,但是當您開始學習Kubernetes時,它非常有用。下麵以一個快速命令開始,建立一個相當複雜的應用程式:

 

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開發人員那裡獲取模板,執行上述命令後,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           8080/TCP   4m
service/mysql                   ClusterIP   172.30.13.195            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                      None

 

這樣做的好處是,你可以刪除pod,觀察複製控制器重新建立它們等。你還可以使用該模板將其用於更改其他應用程式。

 

4、Visual Studio Code

 

我把最喜歡的留到最後說,我大部分的工作都是用Vi,但我從來沒有為 Kubernetes 找到一個好的語法高亮器和程式碼補完外掛(如果有的話,請告訴我)。相反,我發現微軟的VS程式碼有一組殺手級外掛,可以完成Kubernetes資源的建立並提供樣板檔案。

首先,安裝Kubernetes和YAML外掛,如上圖所示。

然後,你可以從頭建立一個新的YAML檔案,並自動新增Kubernetes資源。以上示例顯示了一個服務。

 

當你使用autocomplete並選擇服務資源時,它將填充物件的一些模板。當你第一次學習使用Kubernetes時,這種體驗是非常好的。你可以構建pod、服務、複製控制器、部署等等。當你從頭構建這些檔案,甚至修改Podman generate kube建立的檔案時,這是一個非常好的功能特性。(Github地址:https://github.com/microsoft/vscode

已同步到看一看
贊(0)

分享創造快樂