を経由してマッピングされたポートを介してコマンドを送信します。それは、ポート22082を開いている。この場合私はそうのような特定のポートからコマンドを受け取ることができるアプリケーション持ってkubernetesサービス
echo <command> | nc <hostname> <port>
を、私はそれにドッカーコンテナだと考えています。
このアプリケーションをkubernetesポッドに入れると、kubernetesサービスを作成してこのアプリケーションを公開する必要があります。ここに私のサービスは次のとおりです。
apiVersion: v1
kind: Service
metadata:
name: commander
spec:
selector:
app: commander
ports:
- protocol: TCP
port: 22282
targetPort: 22082
#type: NodePort
externalIPs:
- 10.10.30.19
注:私は、そのメソッドを使用してポートを公開することができていないので、私はNodePortをコメントアウト。 sudo netstat -nlp | grep 22282
を使うたびに何も得られません。
外部IPの使用私はポートを見つけてnetcatを使用して接続することができますが、ポートを介してコマンドを発行するたびにハングアップします。
通常、私は 'help'コマンドを発行してアプリに関する情報を得ることができます。 kubernetesでは、私は同じ出力を得ることができません。私は私のアプリのYAML(ないサービス)でhostNetwork: true
を使用する場合
今、私はポートに接続することができと私の「ヘルプ」の情報を取得します。
hostNetwork設定を使用していないときに、自分のコマンドがアプリに届かない原因は何ですか?
おかげ
UPDATE:sudo iptables --list
からこのメッセージに気づいた:
Chain KUBE-SERVICES (1 references)
target prot opt source destination
REJECT tcp -- anywhere 172.21.155.23 /* default/commander: has no endpoints */ tcp dpt:22282 reject-with icmp-port-unreachable
UPDATE#2:私は司令官にspec.template.metadata.labels.appを設定することにより、上記のエラーを解決しました。私はまだ、しかし、アプリにコマンドを送信することができないことが発生している。私はそうのような実際のnodePort
設定するために必要なことを発見し@sfgroupsへ
NodePortを使用する場合は、ポッドに接続できるポートを使用して30000よりも大きな値を与えます。ここに私の 'NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)AGE grafana-grafana NodePort 10.104.97.35 80:30612/TCP 17d ' –
sfgroups
@sfgroupsだから私の 'port'を設定する必要があると言いますフィールドを30000より大きい値に設定しますか? –