1. 背景最近、Rancher 2.5.5 を使用して Redis のマスタースレーブ レプリケーションを展開していたところ、Rancher が大量の iptables ルールを生成することがわかりました。これらのルールにより、Rancher が展開されているマシンで Redis のマスタースレーブ レプリケーション機能を使用できなくなっていました。Rancher と k8s に関する私の理解は、ネットワーク アーキテクチャと使用方法の理解に限られており、基礎となるレイヤーを深く理解していないため、このネットワーク競合の問題を短期的に解決することはできません。 そのため、Docker の管理モードを Rancher から Portainer に変更しました。この Portainer は比較的軽量で、構築プロセス中に習得するのに数時間かかりました。ここで、参考までにプロセス全体を復元してみます。 2. 操作手順
3. PortinerをインストールするPortiner をインストールする方法はたくさんありますが、私は常に最も簡単な方法で必要なものを入手したいので、ここでは docker を使用してビルドします。 3.1 Dockerのデプロイメントdocker のデプロイ方法は非常に簡単です。単純な run container コマンドを実行するだけです。コマンドは次のとおりです。 docker run -d \ -p 9000:9000 \ -p 8000:8000 \ --常に再起動\ -v /var/run/docker.sock:/var/run/docker.sock \ -v /opt/docker/portainer-ce/data:/data \ です。 --name portainer-ce portainer/portainer-ce このコマンドは、物理マシンのポート 8000 とポート 9000 をコンテナのポート 8000 とポート 9000 にマッピングします。また、ホスト マシンの Docker 通信ファイル 上の図では、dockerコンテナが正常に実行されていることがわかります。次に、サービスが正常に実行されているかどうかを確認する必要があります。ブラウザを使用して、URL 上の写真では、Portainer システムにアクセスできることがわかり、システムが正常にインストールされたことがわかります。 3.2 ノードの初期化ここで、管理者アカウントのパスワードを設定する必要があります。ここでは、パスワードを入力して確認し、 管理者アカウントを設定したら、次の図に示すように初期化する必要があります。 上の画像には 3 つのオプションがあります。私は Portainer を使用してローカル Docker プログラムを管理することを選択しました。 3.3 機能の初期調査初期化操作が完了すると、以下に示すようにPortainerの作業インターフェースに入ることができます。 上の図では、Portainerシステムにすでに 上の図では、Portainerシステムが 上図では、コンテナ一覧に 2 つのコンテナがあること、またコンテナの実行状態がわかるほか、これらのコンテナを制御することもできることがわかります。 4. 管理ノードこれでローカル Docker を制御できるようになりましたが、これでは満足できません。他のマシンも制御する必要があります。 4.1 ノードの追加を開始するPortainerシステムには 上の図からわかるように、すでに 上の図では、5 つのオプションがあることがわかります。ここでは、最も単純なオプション、つまり 4.2 オープンAPIコントロールこの方法では、ノードのdocker起動プログラムにパラメータを追加する必要があるため、まずノードサーバーにログインする必要があります。ssh経由でサーバーにログインするコマンドは次のとおりです。 SSH ルート@xxx.xxx.xxx.xxx コマンドを実行すると、次の図が返されます。 上の図では、ノードが配置されているサーバーを入力したことがわかります。次に、docker起動用の設定ファイルを編集する必要があります。コマンドは次のとおりです。 vim /usr/lib/systemd/system/docker.service コマンドを実行した後、下の図に示すように、vim編集インターフェースで設定を変更できます。 リモートアクセスコードをdockerの起動コマンドラインに追加します。コードは次のとおりです。 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock 次の図に示すように、コードを 設定ファイルを保存したら、Dockerサービスを再起動する必要があります。Dockerを再起動するコマンドは次のとおりです。 systemctl デーモンをリロード && systemctl docker を再起動します Dockerを再起動した後、すべてがうまくいけば完了です。 4.3 ポートステータスの確認dockerの設定情報を表示するには、コマンドは次のようになります。 docker情報 コマンドを実行すると、返される情報は下図のようになります。 上の画像では、Docker が警告プロンプトを表示し、リモート アクセスを有効にするとセキュリティ上のリスクがあることを示しています。今は無視しますが、このプロンプトが表示されるということは、リモート アクセス機能が実際に有効になっていることを示しています。 また、ポートを開くことで、開通が成功したかどうかを確認できます。コマンドは次のとおりです。 ネットスタット -ntl コマンドを実行すると、下の図に示すように、現在のホストのポート開放ステータスが返されます。 上図では、ポート ただし、Portainer が IP 経由でこのノードにアクセスする場合、ネットワーク内のファイアウォールがこのポートをブロックするかどうかを考慮する必要があります。ここで、 nmap -p 2375 xxx.xxx.xxx.xxx コマンドを実行すると、2375 がオンになっているかどうかが返されます。実行結果を下の図に示します。 上図では、ノードのポート 4.4 ノードの追加を完了する次に、以下のようにブラウザウィンドウに戻ります。 上の図に示すウェブページで、ノードのIPアドレスとポートをURL形式で入力し、 上の図では、Portainer システムがノードが正常に追加されたことを通知し、このノードがノード リストに表示されていることがわかります。 5. コンテナの展開ノードを追加したら、リモート ノードにコンテナをデプロイする準備が整います。 5.1 単一のコンテナをデプロイするPortainerのホームページに戻ると、次の図に示すように、追加したノード情報が表示されます。 上の図で追加したノードを選択し、コンテナメニューオプションを入力すると、下の図に示すように、このノードのコンテナリストが表示されます。 上図に示すページのリストの上には、 上の図に示すページでは、Docker イメージのアドレスを入力する必要があります。ここでは、nginx イメージをランダムに選択し、ホストのポート 8888 をコンテナのポート 80 にマッピングしました。この情報を送信すると、下の図に示すように、Portainer システムはコンテナが正常に実行されているかどうかを通知します。 上の図では、コンテナが正常に実行され、コンテナ リストにジャンプしていることがわかります。次に、このノードに対応する 8888 ポートにアクセスして、サービスが利用可能かどうかを確認できます。 ブラウザを開き、アドレスバーにURL 上の図では、 5.2 docker-composeをデプロイするPortainerシステムは、コンテナリストページでコンテナをデプロイするだけでなく、Portainerシステムでは リストの上に 上の図に示すページでは、docker-compose情報を入力するように求められます。ここでは、Redisサービス用の バージョン: '3.5' サービス: レディス: 画像: "redis:latest" コンテナ名: redis_test コマンド: redis-server ポート: - 「16379:16379」 ページに構成を入力した後、送信すると、次の図に示すように、Portainerは対応するノードに デプロイが成功すると、スタックリストにデプロイしたサービスが表示されます。また、リスト内のサービス名をクリックして詳細ページに入り、次の図に示すように、サービスを表示および変更することもできます。 上の図では、このサービスがどのコンテナを実行しているかを確認でき、コンテナを終了または削除することもできます。 この記事は Portainer の予備的な調査に過ぎず、さらに詳しい内容を知るには、引き続き精力的な調査が必要です。 Portainer を使用して Docker コンテナをデプロイするプロジェクトの実践に関するこの記事はこれで終わりです。Portainer による Docker コンテナのデプロイに関する関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 Portainer を使用して Docker コンテナをデプロイするプロジェクトの実践に関するこの記事はこれで終わりです。Portainer による Docker コンテナのデプロイに関する関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Eclipseを使用してMySQLデータベースに接続する方法を説明します
現在、クラウドサーバーに nginx をインストールする際、最初に zlib などの依存ライブラリを...
タッチコマンドこれには 2 つの機能があります。1 つは、既存のファイルの時間タグを現在のシステム時...
コードをコピーコードは次のとおりです。 jQuery.cookie = 関数(名前、値、オプション)...
innobackupex を使用してバックアップする際に MySQL がサーバーに接続できない場合は...
目次1. コンポーネント切り替え方式方法1: v-ifとv-elseを使用する方法 2: 組み込みコ...
目次シングルスレッド非同期シングルスレッドしかし、開発中にネットワーク リクエストやスケジュールされ...
目次1. 学習目標1.1. Tomcatアーキテクチャの設計と原則をマスターして社内スキルを向上させ...
考えられる解決策1. Math.randomは[0,1)の範囲の乱数を生成します。 //今回は生成さ...
インターフェースの役割:インターフェース (英語: interface) の機能は、簡単に言えば、コ...
最近、プロジェクトに取り組んでいるときに、Web ページ上のキーワードを強調表示する機能に遭遇しまし...
最近、小さなプログラムを書いています。その小さなプログラムの公式ウェブサイトはhttpsを使用する必...
Linux でファイルを見つけたいのに、その場所がわからないことがよくあります。次のコマンドを使用し...
1. 最初の方法は、ローカルのTomcatを起動してJSPを表示することです。 tomcatのweb...
<br />インターネット上の無数の情報は基本的に HTML ドキュメントで構成されてお...
検索ページ: search.wxml ページ: <view class="form&...