溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

安裝docker時出現bridge-nf-call-iptables is disabled報錯如何解決

發(fā)布時間:2020-11-27 14:30:08 來源:億速云 閱讀:341 作者:Leah 欄目:開發(fā)技術

今天就跟大家聊聊有關安裝docker時出現bridge-nf-call-iptables is disabled報錯如何解決,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

centos機器 docker安裝完成后,輸入docker info命令,報如下警告信息解決方法:

1)警告信息如下:

WARNING: bridge-nf-call-iptables is disabled

WARNING: bridge-nf-call-ip6tables is disabled

2)解決方法:

修改系統文件是的機器bridge模式開啟

設置機器開機啟動的時候執(zhí)行下面兩條命令

編輯vim /etc/rc.d/rc.local添加下面兩條命令

echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables

echo 1 > /proc/sys/net/bridge/bridge-nf-call-ip6tables

centos7需要增加執(zhí)行權限:

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

3)重啟系統

補充知識:重啟 Kubernetes Pod 的幾種方式

前言

在使用 docker 的過程中,我們可以使用docker restart {container_id}來重啟容器,但是在 kubernetes 中并沒有重啟命令(沒有 kubectl restart {podname}),有時候我們的 Pod 出現 Bug 意外終止,導致我們需要重啟 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
namespace "viua" deleted
service "viua-app-cms" deleted
deployment.apps "viua-app-cms" deleted
service "viua-app-command" deleted
deployment.apps "viua-app-command" deleted
service "viua-show-service" deleted
deployment.apps "viua-show-service" deleted
service "viua-skills-service" deleted
deployment.apps "viua-skills-service" deleted
namespace/viua replaced
secret/xa-harbor-ca replaced
service/viua-app-cms replaced
deployment.apps/viua-app-cms replaced
service/viua-app-command replaced
deployment.apps/viua-app-command replaced
service/viua-show-service replaced
deployment.apps/viua-show-service replaced
service/viua-skills-service replaced
deployment.apps/viua-skills-service replaced

方法 2

沒有 yaml 文件,但是使用的是 Deployment 對象。

kubectl scale deploy viua-app-cms --replicas=0 -n viua

kubectl scale deploy {deploy對象} --replicas=0 -n {namespace}

[root@test-129-70 pvd]# kubectl get deploy -n viua
NAME     READY UP-TO-DATE AVAILABLE AGE
viua-app-cms   1/1  1   1   48m
viua-app-command  1/1  1   1   48m
viua-show-service  1/1  1   1   48m
viua-skills-service 1/1  1   1   48m
[root@test-129-70 pvd]# kubectl scale deploy viua-app-cms --replicas=0 -n viua
deployment.apps/viua-app-cms scaled
[root@test-129-70 pvd]# kubectl get deploy -n viua
NAME     READY UP-TO-DATE AVAILABLE AGE
viua-app-cms   0/0  0   0   49m
viua-app-command  1/1  1   1   49m
viua-show-service  1/1  1   1   49m
viua-skills-service 1/1  1   1   49m
[root@test-129-70 pvd]# kubectl get po -n viua
NAME         READY STATUS RESTARTS AGE
viua-app-command-95f7b6f7f-rb7mh  1/1  Running 0   49m
viua-show-service-85565b9dcf-ss8qp  1/1  Running 0   49m
viua-skills-service-65447f9b94-fhqhr 1/1  Running 0   49m

由于 Deployment 對象并不是直接操控的 Pod 對象,而是操控的 ReplicaSet 對象,而 ReplicaSet 對象就是由副本的數目的定義和 Pod 模板組成的。所以這條命令分別是將 ReplicaSet 的數量 scale 到 0,然后又 scale 到 1,那么 Pod 也就重啟了。

方法 3

同樣沒有 yaml 文件,但是使用的是 Deployment 對象。

使用命令kubectl delete pod {podname} -n {namespace}

這個方法就很簡單粗暴了,直接把 Pod 刪除,因為 Kubernetes 是聲明式 API,所以刪掉了之后,Pod API 對象就與預期的不一致了,所以會自動重新創(chuàng)建 Pod 保持與預期一致,但是如果 ReplicaSet 管理的 Pod 對象很多的話,那么要一個個手動刪除,會很麻煩,所以可以使用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 對象,那么是無法直接刪除或者 scale 到 0 的,但可以通過上面這條命令重啟。這條命令的意思是 get 當前運行的 pod 的 yaml 聲明,并管道重定向輸出到 kubectl replace命令的標準輸入,從而達到重啟的目的。

總結

我們可以通過多種方式來重啟對象,總的來說,最推薦的方式是使用kubectl get pod {podname} -n {namespace} -o yaml | kubectl replace --force -f -這種方式,因為適用于多種對象。此外,重啟 Pod 并不會修復運行程序的 bug,想要解決程序的意外終止,最終還是得要修復 bug。

看完上述內容,你們對安裝docker時出現bridge-nf-call-iptables is disabled報錯如何解決有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI