Dockerの基本-オーケストレーション-開発マシンでKubernetes環境をセットアップして使用する

前提条件

  • 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環境でアプリケーションを簡単に作成および破棄するために使用できます。

  1. このチュートリアルのオーケストレーションの概要セクションで、非常に基本的な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
    
  2. デプロイメントをリストして、すべてが正常であることを確認します。

    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でトラフィックを受け入れるサービスも表示されます。

  3. ブラウザを開いて掲示板にアクセスしますlocalhost:30001。Dockerクイックスタートの2番目の部分でスタンドアロンコンテナとして実行したときと同じように、掲示板が表示されます

  4. 満足したら、アプリケーションを削除します。

    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
リンク:英語のテキスト

おすすめ

転載: blog.csdn.net/weixin_47498376/article/details/108035299