我有一个包含少量节点的 GKE 集群,我希望该集群中的 Pod 能够连接到专用网络上的远程主机,该网络可以通过 GCE 提供的站点到站点 VPN 进行访问。据我所知,没有简单的方法可以为出站连接的 Pod 分配地址吗?(每次添加或更换节点时将每个 pod-cidr 添加到 VPN 配置似乎不太可行。)我是否必须在集群外部设置 NAT 桥,或者是否有某种 Kubernetes 方法来控制出站地址一个吊舱?
根据在 GCP 中设置 HTTP(S) 负载均衡器的指南:
客户端 SSL 会话在负载均衡器处终止。负载均衡器和实例之间的会话可以是 HTTPS(推荐)或 HTTP。如果是 HTTPS,则每个实例都必须有一个证书。
通过在线阅读有关负载均衡器的内容,HTTPS -> LB -> HTTP 设置称为 SSL 卸载,并且是一种常见的网络配置。
为什么 GCP 文档建议使用 HTTPS 连接与计算实例通信?我找不到任何不安全的原因,只要计算实例只允许与负载均衡器进行不安全的 HTTP 通信。
load-balancing google-compute-engine kubernetes google-cloud-platform
我正在尝试kubeadm设置开发大师。我遇到了 kubelet 运行状况检查失败的问题。我正在寻找如何调试它的方向。运行建议用于调试的命令 ( systemctl status kubelet) 看不到错误原因:
kubelet.service - kubelet: The Kubernetes Node Agent\n Loaded: loaded (/etc/systemd/system/kubelet.service; enabled; vendor preset: disabled)\n Drop-In: /etc/systemd/system/kubelet.service.d\n \xe2\x94\x94\xe2\x94\x8010-kubeadm.conf\n Active: activating (auto-restart) (Result: exit-code) since Thu 2017-10-05 15:04:23 CDT; 4s ago\n Docs: http://kubernetes.io/docs/\n Process: 4786 ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_SYSTEM_PODS_ARGS $KUBELET_NETWORK_ARGS $KUBELET_DNS_ARGS $KUBELET_AUTHZ_ARGS $KUBELET_CADVISOR_ARGS $KUBELET_CGROUP_ARGS $KUBELET_CERTIFICATE_ARGS $KUBELET_EXTRA_ARGS (code=exited, status=1/FAILURE)\n Main PID: 4786 (code=exited, status=1/FAILURE)\n\nOct 05 15:04:23 master.domain..com systemd[1]: Unit kubelet.service entered failed state.\nOct 05 15:04:23 master.domain.com systemd[1]: kubelet.service failed.\nRun Code Online (Sandbox Code Playgroud)\n\n在哪里可以找到特定的错误消息来指示其未运行的原因?
\n\n …如果我在 Kubernetes 环境中运行 Wordpress,其中代码是 Docker 映像的一部分,并且有人尝试通过 Wordpress 管理员添加插件,我认为这不会很好地工作,因为只会安装该插件在他们添加插件时命中的容器上,对吗?
我将代码构建到图像中的方法是错误的吗?我考虑过的另一种方法是保存代码的卷,它可以很好地处理这个用例。是否有关于我可以在某处阅读的此类内容的讨论?
我正在 IBM 容器服务上运行 kubernetes 集群。
我设置了一个 OpenVPN pod,它成功地允许客户端连接。客户端具有使用 CCD 分配的固定 IP(在 范围内10.240.0.0/16)。
我希望我的集群中的其他 pod(在172.30.42.0/24)能够访问通过 OpenVPN 连接的客户端。
我试图通过向主机节点添加路由来实现这一点:
ip route add 10.240.0.0/16 via 172.30.42.65(172.30.42.65OpenVPN pod在哪里)
简而言之,这允许来自节点上其他 Pod 的流量将流量路由到 OpenVPN 客户端。不幸的是,Calico 的 Felix 在短时间内移除了根。
是否可以通过 VPN 服务器 pod 设置从节点到 VPN 客户端的路由,接受 Calico 似乎由 IBM 强制执行?
我见过https://github.com/pieterlange/kube-openvpn,它使用端口转发实现了一些关闭。但是,这取决于为每个 VPN 客户端设置端口转发规则,我宁愿避免这种情况(感觉就像我们正在使用此解决方案重新发明路由......)
我认为这可以通过 Calico 配置来实现,但我在他们的文档中找不到任何看起来正确的东西。
我有一个用舵图创建的 mongodb-replicaset。该图表根据我提供的 StorageClass 创建 PVC。我用一个由对卷进行快照的 cron 作业拾取的标签来注释我的卷。
如果我需要从备份快照恢复,比如在另一个集群中,我知道我可以从快照创建一个卷,但我不知道如何将该卷转换为 StatefulSet 期望的 PVC 并且可以重新启动从。
我组织中的其他人使用 AWS 上的 Kops 完成了 Kubernetes 的初始设置,因此我们已经有了 S3 存储桶配置和正在运行的集群。
我的本地环境KOPS_STATE_STORE指向之前设置的 S3 存储桶。该CLUSTER_NAMEENV设置为:[name].k8s.local因为它是一个基于八卦集群。
我正在尝试在本地设置 kops 和 kubectl 以使用这个预制集群。我设置了 AWS 凭证,当我运行时,kops get cluster我看到sitenamecom.k8s.local aws us-west-1a.
当我这样做时kubectl config get-clusters,kubectl config get-contexts它除了空白列外不打印任何内容。
当我这样做kops validate cluster时说:root.go:227] no context set in kubecfg --name is required
当我创建 EKS 集群时,我可以从任何地方访问主节点。尽管如此,控制平面安全组只允许工作人员控制平面连接(默认配置)。
如何将控制平面的访问权限限制在一个安全组内?
我在 CentOS 7 上运行 Kubernetes,似乎该版本不perf支持命名空间。
如果在主机节点(使用 找到的主机节点kubectl describe pods --namespace)上的 PID 上运行 perf,我会收到有关未找到符号的错误。这似乎是因为它在主机节点的文件系统上查找相对于容器的文件路径。
如果我将 exe(包含符号的 Go exe)复制到主机节点上的预期路径(使用kubectl cp ...,或通过在 中的 override2 下查找文件/var/lib/docker),则perf top -p <pid>可以从主机主机节点工作,因为它可以找到与匹配容器中的exe。
是否有更好/更干净的方法来运行perf在具有 CentOS 7 主机的容器中运行的进程?
参考:
我想知道安全专家如何考虑使容器流量安全。我们以一个简单的 K8S 集群为例。
我想我们都同意在每个容器中运行 HTTPS 而不是 HTTP 更安全。我通常会在 Ingress 上配置 TLS,然后路由到内部容器也会配置 TLS。
现代 mashing 解决方案通常安装代理 sidecar - 让我们以 Linkerd2 为例。Ingress 会将所有传入流量升级到 TLS,然后使用 Linkerd 的 TLS 将流量转发到 sidecar 代理。传输到这里的所有内容都是 TLS 并且是安全的。我想知道,既然安全的流量“已经到达”了 pod,容器是否也应该使用 TLS,或者它是否足够安全以在没有 TLS 的情况下与 sidecar 通信?我想听听容器与其边车之间的安全方面。Sidecar 是否应该被视为一个独立的容器,因此与容器的通信也应该受到 TLS 保护?
kubernetes ×10
centos7 ×2
docker ×2
amazon-ebs ×1
containers ×1
linux ×1
networking ×1
perf ×1
security ×1
vpn ×1
wordpress ×1