【发布时间】:2017-05-08 09:02:21
【问题描述】:
一些信息:
- Kubernetes (1.5.1)
- AWS
- 1 个主节点和 1 个节点(均为 ubuntu 16.04)
- 通过 kubeadm 安装 k8s
- 我制作的 Terraform
请不要使用 kube-up、kops 或类似方式回复。这是关于了解 k8s 如何在后台工作。系统中有太多无法解释的魔法,我想了解它。
== 问题:
在 k8s[aws](例如)上创建负载均衡器类型的服务时:
apiVersion: v1
kind: Service
metadata:
name: kubernetes-dashboard
namespace: kube-system
labels:
k8s-addon: kubernetes-dashboard.addons.k8s.io
k8s-app: kubernetes-dashboard
kubernetes.io/cluster-service: "true"
facing: external
spec:
type: LoadBalancer
selector:
k8s-app: kubernetes-dashboard
ports:
- port: 80
我成功地创建了一个面向内部或外部的 ELB,但没有任何机器被添加到 ELB(我也可以污染主机,但没有任何变化)。我的问题基本上是这样的:
https://github.com/kubernetes/kubernetes/issues/29298#issuecomment-260659722
子网和节点(但不是 VPC)都标记有“KubernetesCluster”(再次...... elb 是在正确的位置创建的)。但是没有添加节点。
在日志中
kubectl logs kube-controller-manager-ip-x-x-x-x -n kube-system
之后:
aws_loadbalancer.go:63] Creating load balancer for
kube-system/kubernetes-dashboard with name:
acd8acca0c7a111e69ca306f22de69ae
没有其他输出(它应该打印添加或删除的节点)。我试图理解代码:
https://github.com/kubernetes/kubernetes/blob/master/pkg/cloudprovider/providers/aws/aws_loadbalancer.go 但是不管是什么原因,这个函数并没有添加节点。
文档没有详细解释 k8s 决策背后的“过程”。为了尝试理解 k8s,我尝试/使用了 kops、kube up、kubeadm、kubernetes 艰难的方式 repo 和阅读该死的代码,但我仍然无法理解 aws 上的 k8s 如何选择要添加到 elb 的节点。
因此,也不会在任何地方更改安全组。
它是 ec2 上的标签吗? Kublet 设置? 还有什么?
非常感谢任何帮助。
谢谢, F.
【问题讨论】:
标签: amazon-web-services kubernetes amazon-elb kubeadm