前提条件
- Docker Desktopをダウンロードしてインストールします。詳細については、概要とインストールを参照してください。
- アプリケーションのコンテナ化を完了して第二部。
- DockerデスクトップでKubernetesが有効になっていることを確認します。
- Mac:メニューバーのDockerアイコンをクリックし、[設定]に移動して、[ Kubernetes]の横に緑色のライトが表示されていることを確認します。
- Windows:システムトレイのDockerアイコンをクリックし、[設定]に移動して、[ Kubernetes]の横に緑色のライトが表示されていることを確認します。
Kubernetesが実行されていない場合は、このチュートリアルのオーケストレーションの概要の手順に従ってセットアップを完了してください。
前書き
アプリケーションのさまざまなコンポーネントが独立したコンテナーとして実行されることを示したので、Kubernetesなどのオーケストレーターがそれらを管理するように調整できます。Kubernetesは、コンテナ自体の機能を超えた、コンテナ化されたアプリケーションのスケーリング、ネットワーキング、セキュリティ保護、およびメンテナンスのための多くのツールを提供します。
コンテナ化されたアプリケーションがKubernetesで正常に機能するかどうかを確認するために、開発マシンでDocker Desktopの組み込みKubernetes環境を使用してアプリケーションをデプロイし、本番環境の完全なKubernetesクラスターに渡します。オン。Docker Desktopによって作成されたKubernetes環境は完全に機能します。つまり、アプリケーションが実際のクラスターで利用できるすべてのKubernetes機能を備えており、開発マシンから簡単にアクセスできます。
KubernetesYAMLを使用してアプリケーションを説明する
Kubernetesのすべてのコンテナはポッドとして配置されます。ポッドは、いくつかのリソースを共有する同じ場所にあるコンテナのグループです。さらに、実際のアプリケーションでは、個々のポッドを作成することはほとんどありません。代わりに、ワークロードのほとんどは、Kubernetesによって自動的に維持されるスケーラブルなポッドのグループであるデプロイメントとしてスケジュールされます。最後に、すべてのKubernetesオブジェクトは、KubernetesYAMLファイルと呼ばれるマニフェストに記述できます。これらのYAMLファイルは、Kubernetesアプリケーションのすべてのコンポーネントと構成を記述し、任意のKubernetes環境でアプリケーションを簡単に作成および破棄するために使用できます。
-
このチュートリアルのオーケストレーションの概要セクションで、非常に基本的なKubernetesYAMLファイルを作成しました。それでは、掲示板アプリケーションを実行および管理するために、もう少し複雑なYAMLファイルを作成しましょう。名前付き
bb.yaml
ファイルへの次のコンテンツ:apiVersion: apps/v1 kind: Deployment metadata: name: bb-demo namespace: default spec: replicas: 1 selector: matchLabels: bb: web template: metadata: labels: bb: web spec: containers: - name: bb-site image: bulletinboard:1.0 --- apiVersion: v1 kind: Service metadata: name: bb-entrypoint namespace: default spec: type: NodePort selector: bb: web ports: - port: 8080 targetPort: 8080 nodePort: 30001
このKubernetesYAMLファイルには、
---
分離する2つのオブジェクトがあります。- 1つは
部署(Deployment)
、スケーリング可能な同一のポッドのグループを表します。この場合、副本(replica)
ポッドのコピー、つまりポッド(template:
キーの説明内)は1つのコンテナーのみを取得します。このコンテナーは、ミラーの前のステップの現在のコースに基づいていbulletinboard:1.0
ます。 NodePort
それはあなたが掲示板アプリケーションからネットワークに到達することを可能にする、ポッドにルーティングされている8080ポートにホスト上の30001ポートフォワーディングから流れますサービス。
また、Kubernetes YAMLは最初は長くて複雑に見えるかもしれませんが、ほとんどの場合同じパターンに従うことに注意してください。
apiVersion
、オブジェクトを解析するKubernetesAPIを示しますkind
それがどのタイプのオブジェクトであるかを示すためmetadata
名前などをオブジェクトに適用するにはspec
、オブジェクトのすべてのパラメーターと構成を指定します
- 1つは
アプリケーションをデプロイして確認します
-
ターミナルで、作成した
bb.yaml
位置に移動し、アプリケーションをKubernetesにデプロイします。kubectl apply -f bb.yaml
以下に示す出力が表示され、Kubernetesオブジェクトが正常に作成されたことを示します。
deployment.apps/bb-demo created service/bb-entrypoint created
-
デプロイメントをリストして、すべてが正常であることを確認します。
kubectl get deployments
すべてがうまくいけば、デプロイメントは次のようにリストされているはずです。
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE bb-demo 1 1 1 1 48s
これは、YAMLでリクエストした「すべての」ポッドが稼働していることを意味します。サービスについても同じチェックを行います。
kubectl get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE bb-entrypoint NodePort 10.106.145.116 <none> 8080:30001/TCP 53s kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 138d
デフォルトの
kubernetes
アウトオブサービスに加えて、bb-entrypoint
ポート30001 / TCPでトラフィックを受け入れるサービスも表示されます。 -
ブラウザを開いて掲示板にアクセスします
localhost:30001
。Dockerクイックスタートの2番目の部分でスタンドアロンコンテナとして実行したときと同じように、掲示板が表示されます。 -
満足したら、アプリケーションを削除します。
kubectl delete -f bb.yaml
結論として
これまでのところ、Dockerデスクトップを使用して、開発マシン上の完全に機能するKubernetes環境にアプリケーションを正常にデプロイしました。Kubernetes
についてはあまり作業を行っていませんが、ドアが開いています。Kubernetesについてはあまり作業を行っていませんが、ドアは開いています。アプリケーションに他のコンポーネントを追加して、すべての機能を利用できます。 Kubernetesの機能は自分のマシンにあります。
Kubernetesへのデプロイに加えて、アプリケーションをKubernetesYAMLファイルとして説明します。この単純なテキストファイルには、実行状態でアプリケーションを作成するために必要なすべてのものが含まれています。バージョン管理にチェックインして同僚と共有できるため、アプリケーションを他のクラスター(開発環境の後に表示される可能性のあるテストクラスターや本番クラスターなど)に簡単に配布できます。
Kubernetesリファレンス
この記事で使用されているすべての新しいKubernetesオブジェクトの詳細については、以下を参照してください。
Kubernetesの中国語ドキュメント:https://kubernetes.io/zh/docs/home/
著者:Dockerの公式ウェブサイト
翻訳者:Technical Zemin
発行元:Technical Verses
リンク:英語のテキスト