数ヶ月前までに、the "hostPort" configuration for Pods was not going to work with CNI based integrationsが見つかりました。これは、Calicoを使用する任意のKubernetesクラスタでは、Serviceを使用せずに、または特定のノードのポートにPodのポートを直接直接公開することができないことを意味しました(ちょっと極端です)。KubernetesクラスタのCalico CNI設定を更新できません
Kubernetes 1.7.0から起動することは可能ですが、成功することなく、私がしようとしているのはthe new "portmap" CNI pluginにするために、Calicoの設定を変更する必要があります。私は新しいIBM Bluemix Container Serviceクラスターから始めます。
マイ更紗ノードDaemonSetあり、次のCNI_NETWORK_CONFIG環境変数:
{
"name": "k8s-pod-network",
"cniVersion": "0.3.1",
"type": "calico",
"etcd_endpoints": "__ETCD_ENDPOINTS__",
"etcd_key_file": "__ETCD_KEY_FILE__",
"etcd_cert_file": "__ETCD_CERT_FILE__",
"etcd_ca_cert_file": "__ETCD_CA_CERT_FILE__",
"log_level": "info",
"mtu": 1480,
"ipam": {
"type": "calico-ipam"
},
"policy": {
"type": "k8s",
"k8s_api_root": "https://__KUBERNETES_SERVICE_HOST__:__KUBERNETES_SERVICE_PORT__",
"k8s_auth_token": "__SERVICEACCOUNT_TOKEN__"
},
"kubernetes": {
"kubeconfig": "__KUBECONFIG_FILEPATH__"
}
}
私はここでやった以下の構成に置き換えることをしようとしていた何を:
{
"name": "k8s-pod-network",
"cniVersion": "0.3.1",
"plugins": [{
"type": "calico",
"etcd_endpoints": "__ETCD_ENDPOINTS__",
"etcd_key_file": "__ETCD_KEY_FILE__",
"etcd_cert_file": "__ETCD_CERT_FILE__",
"etcd_ca_cert_file": "__ETCD_CA_CERT_FILE__",
"log_level": "info",
"mtu": 1480,
"ipam": {
"type": "calico-ipam"
},
"policy": {
"type": "k8s",
"k8s_api_root": "https://__KUBERNETES_SERVICE_HOST__:__KUBERNETES_SERVICE_PORT__",
"k8s_auth_token": "__SERVICEACCOUNT_TOKEN__"
},
"kubernetes": {
"kubeconfig": "__KUBECONFIG_FILEPATH__"
}
},
{
"type": "portmap",
"snat": true,
"capabilities": {
"portMappings": true
}
}
]
}
calico-node
ポッドが正常に動作していました強制的にリブートした後、自分のポッドは、初期化中に「ポッドを同期させていません」というイベントが「kubelet NODE_IP」から「ポンド」状態になっています。
私はこの問題について助けていただきありがとうございます。前もって感謝します。
ファイル名を '.conf'から' .conflist'に変更しました。少なくとも、 'calico-node'は正しく動作し、他のポッドも実行されます。残念ながら、私はまだノードのポートにアクセスできません。おそらく、スタック内のどこかにファイアウォールルールが矛盾したり、おそらくファイアウォールルールを作るのは古い設定ファイルでしょう。まだこの部分については調査していますが、ありがとうございます。 –
OK、クラスタに新しいノードを追加しましたが、それでもポートにアクセスできないので、ファイアウォールの設定が間違っている可能性があります。私はまだ正確な問題がどこにあるのか理解できません。 –
あなたのトラフィックに何が起こっているのか分からないので、tcpdumpと 'sudo iptables-save -c | grep DROP'(トラフィックがホストに到着しているかどうか、ホストによってトラフィックがドロップされているかどうかを確認する) –