一些信息:
- 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 艰难的方式回购和阅读该死的代码,但我仍然无法理解 aws 上的 k8s 如何选择要添加到 elb 的节点。
因此,在任何地方也没有更改任何安全组。
它是ec2上的标签吗?Kublet 设置?还要别的吗?
任何帮助是极大的赞赏。
谢谢,F。