Kubernetes を使いこなすのに役立つ 4 つのツール

Kubernetes を使いこなすのに役立つ 4 つのツール

このシリーズの 3 番目の記事「Kubernetes の基礎: まず方法を学ぶ」では、Kubernetes を構築するのではなく、使用することを学ぶ必要があることを強調しました。また、Kubernetes では、アプリケーションをモデル化するために最小限のプリミティブ セットを学習する必要があることも説明しました。この点を強調したいと思います。学習する必要があるプリミティブのセットは、実稼働レベルのアプリケーション デプロイメント (高可用性 [HA]、マルチ コンテナー、マルチ アプリケーションなど) を実現する方法を学習できる最も単純なプリミティブのセットです。言い換えれば、クラスタリング ソフトウェア、クラスター ファイル システム、ロード バランサー、複雑な Apache および Nginx 構成、ルーター、スイッチ、ファイアウォール、ストレージ バックエンドなど、従来の IT 環境 (仮想マシンまたはベアメタル) で単純な HA アプリケーションをモデル化するために必要なものを学ぶよりも、Kubernetes に組み込まれている一連のプリミティブを学ぶ方が簡単です。

[[276785]]

1. カタコダ

Katacoda は間違いなく、Kubernetes クラスターをテストする最も簡単な方法です。 1 回のクリックと 5 秒で、Web ベースのターミナルを実行中の Kubernetes クラスターに直接接続できます。これは使用して学ぶのに最適です。プレゼンテーションや新しいアイデアのテストにも使います。 Katacoda は、使用後にリサイクルできる完全な一時環境を提供します。


OpenShift プレイグラウンド


Kubernetes プレイグラウンド

Katacoda は、ステージング環境とより詳細なラボ環境の両方を提供します。たとえば、私が過去 3 ~ 4 年間教えてきた Linux Container Internals Lab は、Katacoda で構築されました。

Katacoda は、メインサイトでいくつかの Kubernetes およびクラウド チュートリアルを維持しており、Red Hat と提携して OpenShift 専用の学習ポータルをサポートしています。ぜひチェックしてみてください。素晴らしい学習リソースです。

ダンプトラックの運転を初めて学ぶときは、他の人の運転方法を観察するのが最善です。

2. Podmanがkubeを生成する

podman generate kube コマンドは、単純なコンテナを実行する単純なコンテナ エンジンから、多数のコンテナを実行するクラスター ユース ケースにユーザーが自然に移行するのに役立つ優れたサブコマンドです (前回の投稿で説明したとおり)。 Podman では、新しいコンテナを起動し、この動作する Kube YAML をエクスポートして Kubernetes で起動することでこれを実現します。これをチェックしてください (Podman と OpenShift がすでにある Katacoda ラボで実行できます)。

まず、コンテナを実行するための構文は Docker と非常に似ていることに注意してください。

  1. podman 実行 -dtn two-pizza quay.io/fatherlinux/two-pizza

しかし、これは他のコンテナ エンジンにはない機能です。

  1. podman kube 2ピザを生成する

出力:

  1. # Kubernetes YAML生成はまだ開発中です
  2. #
  3. #出力を保存する このファイルを作成し kubectl create -fを使用してインポートします
  4. # それをKubernetesに組み込みます
  5. #
  6. # podman-1.3.1作成
  7. APIバージョン: v1
  8. 種類: ポッド
  9. メタデータ:
  10. 作成タイムスタンプ: "2019-06-07T08:08:12Z"  
  11. ラベル:
  12. アプリ: ツーピザ
  13. 名前: ツーピザ
  14. 仕様:
  15. コンテナ:
  16. - 指示:
  17. - /bin/sh
  18. - -c
  19. - bash -c 'が true の場合; do /usr/bin/nc -l -p 3306 < /srv/hello.txt;終わり'  
  20. 環境:
  21. -名前: PATH
  22. 値: /usr/ローカル/sbin:/usr/ローカル/bin:/usr/sbin:/usr/bin:/sbin:/bin
  23. -名前: 用語
  24. 値: xterm
  25. -名前: ホスト名
  26. -名前: コンテナ
  27. 値: oci
  28. 画像: quay.io/fatherlinux/two-pizza:latest
  29. 名前: ツーピザ
  30. リソース: {}
  31. セキュリティコンテキスト:
  32. 権限昇格を許可: true  
  33. 機能: {}
  34. 特権: false  
  35. readOnlyRootFilesystem: false  
  36. 端末: 
  37. 作業ディレクトリ: /
  38. 状態: {}
  39. ---  
  40. APIバージョン: v1
  41. 種類: サービス
  42. メタデータ:
  43. 作成タイムスタンプ: "2019-06-07T08:08:12Z"  
  44. ラベル:
  45. アプリ: ツーピザ
  46. 名前: ツーピザ
  47. 仕様:
  48. セレクタ:
  49. アプリ: ツーピザ
  50. タイプ: NodePort
  51. 状態:
  52. ロードバランサー: {}

これで、学習や調整などの演習の開始点として使用できる、実際に機能する Kubernetes YAML がいくつか作成されました。 -s フラグはサービスを作成します。 Brent Baude は、ボリューム/永続ボリュームアサーションなどの新機能の追加にも取り組みました。さらに詳しく知りたい場合は、Brent のブログ記事「Podman により Kubernetes および CRI-O への移行が簡単になりました」を読んでみてください。

3. oc 新規アプリ

oc new-app コマンドは非常に強力です。これは OpenShift 固有のものであるため、デフォルトの Kubernetes では利用できませんが、Kubernetes の学習を開始するときには非常に役立ちます。かなり複雑なアプリケーションを作成するための簡単なコマンドから始めましょう。

  1. oc 新規プロジェクト -n 例
  2. oc new-app -f https://raw.githubusercontent.com/openshift/origin/master/examples/quickstarts/cakephp-mysql.json

oc new-app を使用すると、OpenShift 開発者からテンプレートを盗用して、独自のアプリケーションを記述するためのプリミティブを開発するときに、既知の適切な開始点を得ることができます。上記のコマンドを実行すると、Kubernetes 名前空間 (OpenShift 内) にいくつかの新しく定義されたリソースが追加されます。

  1. ocすべて取得 

出力:

  1. 名前準備完了 ステータス 再起動 年齢
  2. pod/cakephp-mysql-example-1-build 0/1 完了 0 4分
  3. pod/cakephp-mysql-example-1-gz65l 1/1 実行中 0 1分
  4. pod/mysql-1-nkhqn 1/1 実行中 0 4m
  5. 名前希望現在の年齢
  6. レプリケーションコントローラ/cakephp-mysql-example-1 1 1 1 1m
  7. レプリケーションコントローラ/mysql-1 1 1 1 4m
  8. 名前タイプ クラスター IP 外部 IP ポート 年齢
  9. service/cakephp-mysql-example ClusterIP 172.30.234.135 <なし> 8080/TCP 4m
  10. service/mysql ClusterIP 172.30.13.195 <なし> 3306/TCP 4m
  11. 名前修正 希望現在トリガー 
  12. デプロイメントconfig.apps.openshift.io/cakephp-mysql-example 1 1 1 config、イメージ(cakephp-mysql-example:latest)
  13. デプロイメントconfig.apps.openshift.io/mysql 1 1 1 config、イメージ(mysql:5.7)
  14. 名前タイプ最新
  15. buildconfig.build.openshift.io/cakephp-mysql-example ソース Git 1
  16. 名前タイプ開始日 ステータス 開始日 期間
  17. build.build.openshift.io/cakephp-mysql-example-1 ソース Git@47a951e 完了 4 分前 2m27s
  18. 名前DOCKER リポジトリ タグが更新されました
  19. imagestream.image.openshift.io/cakephp-mysql-example docker-registry。デフォルト.svc:5000/example/cakephp-mysql-example 最新 約 1 分前
  20. 名前ホスト/ポート パス サービス ポート 終了 ワイルドカード
  21. route.route.openshift.io/cakephp-mysql-example cakephp-mysql-example-example.2886795271-80-rhsummit1.environments.katacoda.com cakephp-mysql-example <すべて> なし

これの利点は、ポッドを削除したり、レプリケーション コントローラーがポッドを再作成する方法を確認したり、ポッドをスケーリングしたりできることです。テンプレートを使用して、他のアプリケーションに変更できます (私が最初に始めたときに行ったことです)。

4. ビジュアルスタジオコード

私のお気に入りを最後に残しておきました。私はほとんどの仕事で vi を使用していますが、Kubernetes 用の優れた構文ハイライトおよびコード補完プラグインを見つけたことがありません (もしあれば、教えてください)。代わりに、Microsoft の VS Code には、Kubernetes リソースの作成と定型文の提供を担当する優れたプラグイン セットがあることが分かりました。


VS Code プラグイン UI

まず、上の画像に示す Kubernetes および YAML プラグインをインストールします。


VS Code のオートコンプリート

その後、新しい YAML ファイルを最初から作成し、Kubernetes リソースを自動的に完了させることができます。上記の例はサービスを示しています。


VS Codeのオートコンプリート機能で定型文を補完

オートコンプリートを使用してサービス リソースを選択すると、そのオブジェクトのいくつかのテンプレートが入力されます。これは、Kubernetes の使い方を初めて学習する場合に最適です。ポッド、サービス、レプリケーション コントローラー、デプロイメントなどを構築できます。これは、これらのファイルを最初から構築する場合や、podman generate kube で作成したファイルを変更する場合に非常に便利な機能です。

要約する

これら 4 つのツール (2 つのプラグインを数えると 6 つ) は、Kubernetes を構築したりインストルメント化したりするのではなく、Kubernetes を操作する方法を学ぶのに役立ちます。このシリーズの最後の投稿では、Kubernetes がさまざまなワークロードの実行に適している理由について説明します。

<<:  エッジコンピューティングとエッジクラウド連携については、この記事をお読みください。

>>:  クラウドに移行する前に実行すべき 6 つのステップ

推薦する

Fenghuo は 2017 OpenStack Sydney Summit で FitOS6.0 クラウド オペレーティング システムを発表します

[51CTO.com からのオリジナル記事] OpenStack Foundation の最重要イベ...

edgenat: 香港/韓国の無制限トラフィック VPS、米国 AS4837 ネットワーク VPS、月額 35 元から、Windows システムをサポート

Edgenat は、現在から 2 月 10 日まで VPS プロモーションを開催しています: 香港 ...

最高レベルのSEO:ユーザーエクスペリエンスの価値を最大化

SEO の最高レベルは、ユーザー エクスペリエンスの価値を最大化することです。私は 4 年間 SEO...

プロメテウス: 年間 35 ユーロ、KVM/1G メモリ/20g SSD+200GHDD/10T トラフィック

Prometeus は、オランダのデータセンターに 2 つの小規模 VPS、KVM シリーズ ストレ...

宅配業者は春節期間中に大量の商品を扱っており、通常に戻るまで1週間ほどかかる見込み

「大晦日にネットで服を買ったのですが、今朝になってやっと届きました。配達が本当に遅いです!」昨日の朝...

extravm: 月額 3.5 ドル、KVM シリーズ、シンガポールの無制限の高セキュリティ VPS、OVH データ センター

OVHのシンガポールデータセンターでVPSを購入したいという方もいらっしゃいますが、残念ながら公式サ...

ウェブサイトのデザイン分析: レスポンシブ ページのいくつかの主要コンポーネント

ワイヤレス部門で働く者として、モバイルデバイスを理解しないわけにはいきません。無限の再構築として、レ...

最適化共有:「TF-IDF」アルゴリズムの概念とSEOへの応用

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています私は以前か...

広州は小米のマーケティング「NewX」よりも熱い - 新技術、新メディア、新コンテンツのマーケティング探究

月収10万元の起業の夢を実現するミニプログラム起業支援プラン9月4日、「NewX-2018 Xiao...

百度:悲しみは逆流により川となる

先日の百度カンファレンスで、ロビン・リー氏は、アプリケーション開発の「クラウド開発時代」の到来に伴い...

クラウド コンピューティングの「新たな黄金の 10 年」で勝利するのは誰か?

「ポスト疫病時代」では、クラウドコンピューティングのエネルギーが加速的に解放されています。データによ...

ハッカーがPayPalのセキュリティの抜け穴を暴き、いくつかのトリックを使って口座資金を2倍にする

PayPalのセキュリティ欠陥によりハッカーが口座資金を倍増させることが可能にフェニックステクノロジ...