
我想在我的筆記型電腦上建立本地 kubernetes (minikube) 和 glusterfs 設置,當我移動位置時,它們將繼續工作。
這樣做的問題是設定的某些方面需要使用 IP 位址/可解析的網域名稱。 minikube 設定會忽略我的/etc/hosts,並且每個位置都會為我的機器提供不同的IP 位址,因此對IP 位址進行硬編碼既煩人又耗時,因為我必須拆除、編輯,然後重新建立設置。
我的第一個想法是在本地建立一個像 BIND 這樣的 DNS 伺服器,它會傳回機器的 IP 位址,但我找不到任何關於如何返回目前機器的 IP 位址的資訊。
任何人都知道如何執行此操作或提供相同功能的替代設定嗎?
提前致謝。
答案1
感謝弗蘭克·托馬斯的提示,我最終找到了一個粗略的方法來做到這一點。
我討厭 BASH 腳本,而且很可能還有其他問題,所以如果有人有更好的方法來做到這一點,請務必添加評論,建議如何改進它,我會更新它。
對於 ubuntu 16.04,我在 /etc/network/if-up.d 中建立了一個名為 addip 的文件,其中包含以下內容:
#!/bin/sh
set -e
ADDITIONAL_IPADDR="10.0.0.111/24"
PREFERRED_INTERFACE="wlp4s0"
# Description: Add ip address to allow for local services on a machine that's
# assigned an ip address by dhcp over a wifi nic
if [ $IFACE != $PREFERRED_INTERFACE ] || [ $ADDRFAM != inet ]; then
exit 0
fi
if [ -x /bin/ip ] ; then
# ip already present?
ip addr show | grep -q "$ADDITIONAL_IPADDR[[:space:]]" && exit 0
/sbin/ip addr add $ADDITIONAL_IPADDR dev $PREFERRED_INTERFACE
fi
您可能想要變更 ADDITIONAL_IPADDR 和 PREFERRED_INTERFACE 的值。
然後,您可以設定首選 DNS 伺服器以傳回您在 ADDITIONAL_IPADDR 中設定的 IP 位址。