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データベースに接続する方法を説明します
仮想マシンを使用する人は通常、操作と使用を容易にするために仮想マシン用の共有ディレクトリを設定します...
TypeScript を使用する場合、TypeScript が提供する型システムを使用してコードのあ...
テスト サーバーにログインするたびに、必ず ssh ログインのパスワードを入力する必要があります。ロ...
効果画像: 実装コード: <テンプレート> <div id="map&q...
この記事は主に、MySQLを再インストールする際のクリーンでないアンインストールのさまざまな問題をま...
名前を格納するフィールドが GBK 文字セットを使用している場合、GBK 内部コード自体がエンコード...
サンプルコード: java.util.Random をインポートします。 java.util.UUI...
シミュレーションテーブルとデータスクリプト次の SQL ステートメントをコピーして、sys_dept...
1. まず、サーバーの mysql にアクセスして権限を変更します。 GRANT オプション付きで、...
Nginx は、リバース プロキシ機能を使用して負荷分散を実装できるほか、フォワード プロキシ機能を...
目次序文1. ssコマンド2. Zabbix監視マシンの全体的なソケットステータス2.1. スクリプ...
1. 設置環境1. HUAWEI mate x CPU i5 82500u、8g メモリ、独立グラフ...
目次序文事例: JD.com の虫眼鏡効果の模倣オフセットシリーズクライアントシリーズスクロールシリ...
1. インストールと使用まず、Vue プロジェクトにインストールします。 npm インストール --...
この記事では、jsでスライダーをドラッグする方法の具体的なコードを参考までに共有します。具体的な内容...