私クーバーネティスクラスター操作アプリケーション(現在のローカルサーバーのVagrant CoreOS VMセットにあります)
私は自分のラップトップでローカルに特定のアプリケーションをデバッグできるようにしたいので、クラスタにVPNを設定する作業をしました。クライアント/サーバー VPNに基づくkylemanna/docker-openvpn
一般的な配布として現物返済のお支払い
証明書/鍵ペア、クライアント証明書などを作成しました。 VPNに接続できます。
これでサービスにアクセスできない場合は、VPNサーバーに接続してもあまり役に立ちません。クラスタでskyDNSのDNSプラグインを実行しています。クラスタ内の他のポッドからサービスをインポートできるため、すべてがうまくnslookup
機能しますが、VPNクライアントでは名前でサービスを解決できません。 VPNクライアント(サブネット)から10.2.0.0/16
IPにポッドをpingできますが、DNSを使用して解決することはできません。
aクライアントからの返品nslookup
:
nslookup myservice 10.3.0.10
Server: 10.3.0.10
Address: 10.3.0.10#53
** server can't find myservice: SERVFAIL
トラブルシューティングの問題の1つは、DNS IP(すべてのポッドの)ping
では機能しませんが、サービスを解決することです。これは私が確認する方法ですが、多くの情報を提供しません。traceroute
nslookup
PodがバインドされているVPNホストIPは192.168.10.152
Kubernetes、サブネットは10.2.0.0/16
SkyDNS、サーバーは次のとおりです。10.3.0.10
VPNサーバーサブネットは10.8.0.0/24
VPNサーバーにあります。 ifconfigは以下を提供します。
eth0 Link encap:Ethernet HWaddr 02:42:0A:02:16:45
inet addr:10.2.22.69 Bcast:0.0.0.0 Mask:255.255.255.0
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255
10.2.22.69
これもこうだ現物返済のお支払いIPとVPNサーバーのIPは私の考えでは10.8.0.1
ゲートウェイです10.8.0.2
。
VPNサーバーPodでは、ルーティングテーブルは次のとおりです。
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.2.22.1 0.0.0.0 UG 0 0 0 eth0
10.2.22.0 * 255.255.255.0 U 0 0 0 eth0
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
10.8.0.2 * 255.255.255.255 UH 0 0 0 tun0
192.168.254.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
IPを介して自分のアプリケーションにアクセスしてデータを取得できますが、サービスIP(10.3.0.0サブネット上のプロキシIP)を使用すると、自分のアプリケーションにアクセスできなくなります。
VPNサーバーにルートを追加してから、route add -net 10.3.0.0/16 gw 10.8.0.2
サービスIPを使用してデータを取得できますが、タイムアウトしnslookup
ます。
トラフィックがDNSから戻らない可能性があると思います。 DNS自体はKubernetesのプロキシサービスなので、複雑さが増します。この問題を解決する方法がわかりません。
ベストアンサー1
結局のところ、私の構成は次のようになります。
docker run -v /etc/openvpn:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig \
-u udp://192.168.10.152:1194 \
-n 10.3.0.10 \
-n 192.168.10.1 \
-n 8.8.8.8 \
-n 75.75.75.75 \
-n 75.75.75.76 \
-s 10.8.0.0/24 \
-N \
-p "route 10.2.0.0 255.255.0.0" \
-p "route 10.3.0.0 255.255.0.0" \
-p "dhcp-option DOMAIN-SEARCH cluster.local" \
-p "dhcp-option DOMAIN-SEARCH svc.cluster.local" \
-p "dhcp-option DOMAIN-SEARCH default.svc.cluster.local"
-u
VPNサーバーのアドレスとポート
-n
すべてのDNSサーバーで使用
-s
VPNサブネット定義(デフォルトは10.2.0.0、すでにKubernetesで使用されています)
-d
NATを無効にする
-p
クライアントへのオプションのプッシュ
-N
NATを有効にする:Kubernetesではこの設定が重要に見えます。
nslookup
検索ドメインをクライアントにプッシュする最後の部分は、etcを操作するための鍵です。
カールは最初は機能しませんが、数秒後に動作を開始するようです。したがって、動作しますが、カールを解決するのに時間がかかります。