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データベースに接続する方法を説明します
ネットワークリクエストを送信すると、次の保存情報が表示されます。おめでとうございます。ドメインを越え...
目次【共通コマンド】 [一般的な esxi コマンドの概要] [esxcli コマンドの調査] ES...
アクセス回数が増えると、時間のかかるデータベース読み取り操作では、データベースへの負荷を軽減するため...
MySQL 5.6 での union all のパフォーマンスパート 1:MySQL 5.6.25 ...
MySQL フルテキスト インデックスは、特定のテーブルの特定の列に表示されるすべての単語のリストを...
要件:PC側とモバイル側は2つの独立したプロジェクトです。2つのプロジェクトの内容は基本的に同じで、...
Windows のデフォルトのスクロール バー スタイルは見苦しく、プロジェクト内でスクロール バー...
DOSBox を使用すると、Windows で DOS をシミュレートし、楽しい作業を行うことができ...
まず、画像を見てみましょう。今日はこのエフェクトを作成します。 実は、何でもないんです。Web ペー...
目次序文始めるちょっとした考えコードの実装真似する実装トラックトリガーの実装観察の実装計算の実装序文...
目次1. SQLコマンドを含むSQLスクリプトファイルを作成する2. SQLスクリプトファイルを実行...
目次ビジネス要件:解決策 1: vuex-persistedstate解決策2: vuex-pers...
この記事では、アバター変更機能を実装するためのJavaScriptの具体的なコードを参考までに共有し...
問題の説明: ユーザーは、テーブルに「違反」という単語を含むフィールドが時々表示されることを要求して...
最初の方法: docker インストール1. オープンソース版のイメージを取得する2. 対応するデー...