docker のインストールが完了し、bridge-nf-call-iptables が無効であると報告される問題を解決します

docker のインストールが完了し、bridge-nf-call-iptables が無効であると報告される問題を解決します

Centos マシンで docker のインストールが完了したら、docker info コマンドを入力すると、次の警告情報が報告されます。

1) 警告メッセージは次のとおりです。

警告: bridge-nf-call-iptables が無効になっています

警告: bridge-nf-call-ip6tables が無効になっています

2) 解決策:

システムファイルを変更してマシンブリッジモードを有効にする

起動時に次の2つのコマンドを実行するように設定します

vim /etc/rc.d/rc.localを編集し、次の2つのコマンドを追加します。

エコー 1 > /proc/sys/net/bridge/bridge-nf-call-iptables

エコー 1 > /proc/sys/net/bridge/bridge-nf-call-ip6tables

CentOS 7 では実行権限を増やす必要があります:

chmod +x /etc/rc,d/rc.local

3) システムを再起動する

追加知識: Kubernetes Pod を再起動するいくつかの方法

序文

docker を使用する場合、docker restart {container_id} を使用してコンテナを再起動できますが、kubernetes には再起動コマンドがありません (kubectl restart {podname} はありません)。バグにより Pod が予期せず終了し、Pod を再起動する必要が生じることがありますが、特に yaml ファイルがない場合、良い方法がないため、Pod を再起動する方法を以下にまとめました。

方法1

最新のyamlファイルがあります。

yaml ファイルがある場合は、 kubectl replace --force -f xxxx.yaml を直接使用して、Pod の API オブジェクトの置き換えを強制し、再起動の目的を達成できます。次のように:

[root@test-129-70 viua]# kubectl replace --force -f viua.yml
名前空間「viua」が削除されました
サービス「viua-app-cms」が削除されました
デプロイメント アプリ「viua-app-cms」が削除されました
サービス「viua-app-command」が削除されました
デプロイメント.apps「viua-app-command」が削除されました
サービス「viua-show-service」が削除されました
デプロイメント アプリ「viua-show-service」が削除されました
サービス「viua-skills-service」が削除されました
デプロイメントアプリ「viua-skills-service」が削除されました
名前空間/viua が置き換えられました
secret/xa-harbor-ca が置き換えられました
service/viua-app-cms が置き換えられました
deploy.apps/viua-app-cms が置き換えられました
service/viua-app-command が置き換えられました
deploy.apps/viua-app-command が置き換えられました
サービス/viua-show-service が置き換えられました
deploy.apps/viua-show-service が置き換えられました
service/viua-skills-service が置き換えられました
deploy.apps/viua-skills-service が置き換えられました

方法2

yaml ファイルはありませんが、Deployment オブジェクトが使用されます。

kubectlスケールデプロイviua-app-cms --replicas=0 -n viua

kubectl scale deploy {オブジェクトをデプロイ} --replicas=0 -n {名前空間}

[root@test-129-70 pvd]# kubectl get deploy -n viua
名前 準備完了 最新 利用可能 年齢
viua-app-cms 1/1 1 1 48分
viuaアプリコマンド 1/1 1 1 48分
viua-ショーサービス 1/1 1 1 48m
viua-スキルサービス 1/1 1 1 48m
[root@test-129-70 pvd]# kubectl scale deploy viua-app-cms --replicas=0 -n viua
展開.apps/viua-app-cms スケール
[root@test-129-70 pvd]# kubectl get deploy -n viua
名前 準備完了 最新 利用可能 年齢
viua-app-cms 0/0 0 0 49分
viuaアプリコマンド 1/1 1 1 49分
viua-ショーサービス 1/1 1 1 49m
viua-スキルサービス 1/1 1 1 49m
[root@test-129-70 pvd]# kubectl get po -n viua
名前 準備完了 ステータス 再起動 年齢
viua-app-command-95f7b6f7f-rb7mh 1/1 実行中 0 49分
viua-show-service-85565b9dcf-ss8qp 1/1 実行中 0 49m
viua-skills-service-65447f9b94-fhqhr 1/1 実行中 0 49m

Deployment オブジェクトは Pod オブジェクトを直接制御するのではなく、ReplicaSet オブジェクトを制御し、ReplicaSet オブジェクトはレプリカ数の定義と Pod テンプレートから構成されるためです。したがって、このコマンドは、ReplicaSet の数を 0 にスケールし、その後 1 に戻して、Pod を再起動します。

方法3

yaml ファイルもありませんが、Deployment オブジェクトが使用されます。

kubectl delete pod {podname} -n {namespace}コマンドを使用します。

この方法は非常に単純で大雑把です。Pod を削除するだけです。Kubernetes は宣言型 API なので、削除後は Pod API オブジェクトが期待したものと不整合になるため、期待したものと整合するように Pod が自動的に再作成されます。ただし、ReplicaSet で管理されている Pod オブジェクトが多数ある場合、手動で 1 つずつ削除するのは面倒です。そのため、kubectl delete replicaset {rs_name} -n {namespace} コマンドを使用して ReplicaSet を削除できます。

方法4

yaml ファイルはなく、Pod オブジェクトが直接使用されます。

コマンド kubectl get pod {podname} -n {namespace} -o yaml | kubectl replace --force -f - を使用します。

この場合、YAML ファイルがなく、Pod オブジェクトが起動しているため、直接削除したり 0 にスケールしたりすることはできませんが、上記のコマンドを使用して再起動することはできます。このコマンドは、現在実行中のポッドの YAML 宣言を取得し、その出力を kubectl replace コマンドの標準入力にリダイレクトして、再起動の目的を達成することを意味します。

要約する

オブジェクトを再起動する方法は多数あります。一般的に、多くのオブジェクトに適用できるため、最も推奨される方法は kubectl get pod {podname} -n {namespace} -o yaml | kubectl replace --force -f - を使用することです。また、Pod を再起動しても実行中のプログラムのバグは修正されません。プログラムの予期しない終了を解決したい場合は、最終的にはバグを修正する必要があります。

上記のdockerインストール完了報告の問題を解決する記事:bridge-nf-call-iptablesが無効ですは、編集者があなたと共有した内容のすべてです。参考になれば幸いです。また、123WORDPRESS.COMを応援していただければ幸いです。

以下もご興味があるかもしれません:
  • DockerにRedisをインストールし、設定ファイルとして起動する詳細な説明
  • Docker インストール rocketMQ チュートリアル (最も詳細)
  • DockerでRedashの中国語版をデプロイしてインストールする方法の詳細な説明
  • 5分でDockerをインストールする詳細な手順

<<:  IDEAでVUEプロジェクトをデバッグするための詳細な手順

>>:  ウェブデザインにおけるテキスト入力ボックスのパラメータの説明

推薦する

MySQL binlog_ignore_dbパラメータの具体的な使用法

序文:前の記事を読んだ後、binlog はデータベースで実行されたすべての DDL および DML ...

Linux カーネル デバイス ドライバー システム コールに関する注意事項

/**************************** * システムコール**********...

ウェブサイトアイコンを追加するにはどうすればいいですか?

最初のステップは、アイコン作成ソフトウェアを準備することです。まず、いわゆるアイコンは拡張子 .ic...

a タグをクリックして入力ファイルのアップロードダイアログボックスを表示する方法

htmlコードをコピーコードは次のとおりです。 <SPAN class=tag><...

Centos8 で Docker を使用して Django プロジェクトをデプロイする詳細なチュートリアル

導入この記事では、django + uwsgi + nginx デプロイメントを使用して、Docke...

JSONオブジェクトのキーを置き換える最良の方法

JSON (JavaScript Object Notation、JS Object Notatio...

一般的なフロントエンドJavaScriptメソッドのカプセル化

目次1. 値を入力し、そのデータ型を返す** 2. アレイ重複排除3. 文字列の重複排除4. ディー...

ウェブデザインの発展と西洋建築の類似点は何でしょうか?

歴史は常に驚くほどうまく繰り返される。西洋建築とウェブデザインは、どちらも工学と芸術の組み合わせです...

js でパズルゲームを実装する

この記事では、パズルゲームを実装するためのjsの具体的なコードを参考までに共有します。具体的な内容は...

MySQL の null 可能フィールドは NULL に設定する必要がありますか、それとも NOT NULL に設定する必要がありますか?

MySQL を頻繁に使用する人は、次のような状況に遭遇する可能性があります。 1. フィールド タ...

MySQLコンテナ間のレプリケーション構成例の詳細な説明

背景先週、会社で MySQL レプリケーションのトレーニングを受けたので、今週末は学んだことを実践す...

jQueryはHTML要素の非表示と表示を実装します

商品を検索するときに、すべてのブランドまたは一部のブランドを表示するTaobaoの機能を真似してみま...

MySQLでユーザーを作成し、ユーザーに権限を付与する方法の詳細なチュートリアル

目次ユーザー管理新しいユーザーを作成するユーザー名の変更ユーザーのパスワードを設定するルートパスワー...

nginx ログを elasticsearch にインポートする方法の例

nginx ログは filebeat によって収集され、logstash に渡され、logstash...

Windows 10 での MySQL 8.0.22 のインストールと設定方法のグラフィック チュートリアル

MySQL 8.0.22のインストールと設定方法のグラフィックチュートリアル、参考までに、具体的な内...