5

いくつかの情報:

  • 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のタグですか?キューブレット設定?他に何か?

どんな助けでも大歓迎です。

ありがとう。

4

3 に答える 3

0

ノード登録はKubernetesの外で管理されていると思います。Kops を使用していますが、AWS で ASG のサイズを編集すると、新しいノードがサービス ELB に登録されません。しかし、kops を使用してノードの数を編集すると、新しいノードが表示されます。

ドキュメントでは、AWS での実行時に kopsインスタンス グループが ASG にマップされます。コードでは、k8s API ではなく AWS を呼び出しているように見えます。

Kops を使用していないことはわかっていますが、Terraform では、kops が行っている AWS API 呼び出しを複製する必要があると思います。

于 2017-01-03T19:07:33.860 に答える
0

kubeadm ( http://kubernetes.io/docs/admin/kubeadm/ )で正しいクラウド プロバイダー設定を行っていることを確認してください。

The AWS cloud provider automatically syncs the nodes available with the ELB. I created an type LoadBalancer then scaled my cluster and the new node was eventually added the ELB: https://github.com/kubernetes/kubernetes/blob/master/pkg/cloudprovider/providers/aws/aws_loadbalancer.go#L376

于 2017-01-03T19:45:13.100 に答える