![GCP:使用 UBUNTU 作为操作系统时,kubectl exec/logs 无法容器化](https://linux22.com/image/720450/GCP%EF%BC%9A%E4%BD%BF%E7%94%A8%20UBUNTU%20%E4%BD%9C%E4%B8%BA%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E6%97%B6%EF%BC%8Ckubectl%20exec%2Flogs%20%E6%97%A0%E6%B3%95%E5%AE%B9%E5%99%A8%E5%8C%96.png)
我创建了一个 2 节点集群,操作系统为 UBUNTU。部署容器后,尝试 kubectl exec 或日志失败,并显示以下错误:-
服务器错误:后端拨号错误:当前未打开 SSH 隧道。目标是否能够接受用户的 ssh 密钥
请告诉我如何让它工作。节点只是默认池的一部分。我正尝试从具有集群凭据的笔记本电脑执行 kubectl exec。
默认防火墙的输出:
gcloud compute firewall-rules list --filter network=default
default-allow-http default INGRESS 1000 tcp:80
default-allow-https default INGRESS 1000 tcp:443
default-allow-icmp default INGRESS 65534 icmp
default-allow-internal default INGRESS 65534 tcp:0-65535,udp:0-65535,icmp
default-allow-rdp default INGRESS 65534 tcp:3389
default-allow-ssh default INGRESS 65534 tcp:22
gke-ks-gke-test-cluster-0725bebf-all default INGRESS 1000 ah,sctp,tcp,udp,icmp,esp
gke-ks-gke-test-cluster-0725bebf-ssh default INGRESS 1000 tcp:22
gke-ks-gke-test-cluster-0725bebf-vms default INGRESS 1000 icmp,tcp:1-65535,udp:1-65535
答案1
由于某种原因,尽管它在 32kb 的限制范围内,但在清理项目元数据后它已开始工作。
答案2
最初部署集群时,会创建多个防火墙规则以允许集群节点之间的内部通信。还会创建一条默认防火墙规则以允许来自内部网络的通信(名为 default-allow-internal)。您可能需要添加一条防火墙规则以允许您的 PC 连接到 K8S 主节点。