いくつかの情報:
- Kubernetes (1.5.1)
- AWS
- 1 つのマスターと 1 つのノード (どちらも ubuntu 16.04)
- kubeadm 経由でインストールされた k8s
- 私が作ったテラフォーム
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のタグですか?キューブレット設定?他に何か?
どんな助けでも大歓迎です。
ありがとう。