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 つのステップ

推薦する

1万メートルでのスカイダイビング、​​携帯電話で遊ぶ、開梱、Jiguoの新製品マーケティングが2018年のゴールデンアイ賞を受賞

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

広州市海珠区の自動運転試験道路第1弾が運用開始、テンセントのL4レベル試験車が初試験に参加

1月26日、広州市海珠区の琶洲人工知能・デジタル経済実験区でインテリジェントコネクテッド(自動運転)...

Docker-Compose を通じて Elasticsearch と Kibana を素早くデプロイする

1. 概要Docker Compose を使用して Elasticsearch と Kibana を...

Amazon Web Services: ゲーム業界の革新と再編を実現

「マリオ」や「テトリス」の初期の時代から、今日の人気の「原神」まで、世界のゲーム業界は過去 70 年...

私たちのブログがインターネット上でいつも忘れられてしまう理由

ウェブマスターなら誰でも少なくとも 1 つのブログを運営していると思います。ブログが金儲けのツールに...

あなたのウェブサイトを画像で表現しましょう

最近、SEO 最適化は厄介なグレーゾーンに入っているようです。検索エンジンは絶えず改良され、アルゴリ...

Travel Frog、Jump Jump、これらのゲームがなぜこんなに人気があるのでしょうか?

近頃、日本のゲーム「旅蛙」が中国人の社交界を席巻している。本を読み、食べ、眠り、旅をするカエルの話で...

どのようなウェブサイトがユーザーを惹きつけ、クリックしてもらい、維持できるのでしょうか?

どのようなウェブサイトデザインであれば、ユーザーがクリックしたくなるのでしょうか? これが、ウェブサ...

北京の知恵、クラウドが企業のデジタル変革を支援

2021年3月28日、CIOタイムズアカデミーと新インフライノベーション研究所が共催する「2021年...

Rushmail: 一括メールプラットフォームを使用してサービス品質を向上させる方法

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス今日のインターネット時代...

外国投資の失敗の新たな例:ChinaHR.comの衰退

4年前にChinaHR.comのいたるところで流れた広告を覚えていますか? スーパーマンが街中を飛び...

老ウェブマスターがウェブサイトコンテンツの「重複掲載」を避ける方法を教えてくれる

私たちのウェブサイトが検索エンジンによってインデックスされているとき、この現象がよく見られます。同じ...

weloveservers プロモーションは 1 日限定: 1G メモリ/60G ハードディスク/1T トラフィック/年間支払い 25 ドル

Weloveservers のプロモーションは 1 日限定で、元の 512M メモリの VPS リソ...