Kubeadm: Kubeadm構成ドキュメント/例?

作成日 2017年01月24日  ·  12コメント  ·  ソース: kubernetes/kubeadm

kubeadm initを実行するときに、kubeadmに構成を与えようとしています。
設定が正確に正しい形式になっていることに気付きました。たとえば、トークンを変更します。

apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
kubernetesVersion: v1.4.4
secrets:
  givenToken: 123456.3123fe2e098799f3

それはうまくいきます。 そして、kubeadm出力で

提供されたトークンの検証
受け入れられた提供されたトークン

ただし、別のyamlを使用する場合。 基本的に自分のcrtファイルを指定したい

apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
kubernetesVersion: v1.4.4
etcd:
  caFile : /root/easy-rsa-master/easyrsa3/pki/ca.crt
  certFile : /root/easy-rsa-master/easyrsa3/pki/issued/kubernetes-master.crt
  keyFile : /root/easy-rsa-master/easyrsa3/pki/private/kubernetes-master.key

出力すらしません提供されたトークンの検証
kubeadmがconfig(?)を認識しなかったようです

これをデバッグする方法はありますか?
kubeadm configの構文に関するドキュメントはどこにありますか?
https://kubernetes.io/docs/admin/kubeadm/の最後にサンプルのマスター設定のみがあります
https://kubernetes.io/docs/admin/kube-apiserver/でサポートされているAPIサーバーに他のコマンドライン値を指定したい場合、対応する名前は何ですか?

たとえば、kubeadm init config.yamlでAPIサーバーの--tls-private-key-fileを指定する場合、対応する名前は何ですか? tlsPrivateKeyFileですか?

最も参考になるコメント

構成例がここのドキュメントに追加されました:

https://kubernetes.io/docs/admin/kubeadm/#config -file

全てのコメント12件

@Lokicity私が理解していることから、実行中にコントロールプランの構成を動的に変更することはできません。 そのコンポーネントを再起動する必要があります。

トークンの問題については、トークンを渡さないと、トークンが生成されます。

はい。 ただし、kubeadm initには--configがあり、ユーザーがデフォルトのデータを渡すことができます。 APIサーバーに必要な特定のデータを渡すことはできますか? たとえば、kubeadmによって生成されたデフォルトのサーバー以外のAPIサーバーに独自の--tls-private-key-fileを使用したいと思います。
kubeadminit時にそれができるようになりたい

構成例がここのドキュメントに追加されました:

https://kubernetes.io/docs/admin/kubeadm/#config -file

@jistrはあなたの上のリンクをたどります、私は以下のyamlファイルを使用しました

apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
etcd:
  endpoints:
  - http://127.0.0.1:2379

設定ファイルとしてですが、etcdエンドポイントを反映していません(まだnil)。

kubeadm.MasterConfiguration{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, API:kubeadm.API{AdvertiseAddress:"192.168.180.53", BindPort:6443}, Etcd:kubeadm.Etcd{Endpoints:[]string(nil), CAFil
e:"", CertFile:"", KeyFile:""}, Networking:kubeadm.Networking{ServiceSubnet:"10.96.0.0/12", PodSubnet:"", DNSDomain:"cluster.local"}, KubernetesVersion:"v1.6.0", CloudProvider:"", AuthorizationM
ode:"RBAC", Token:"8f6cc5.9fdf609145758fbd", TokenTTL:0, SelfHosted:false, APIServerExtraArgs:map[string]string(nil), ControllerManagerExtraArgs:map[string]string(nil), SchedulerExtraArgs:map[st
ring]string(nil), APIServerCertSANs:[]string(nil), CertificatesDir:"/etc/kubernetes/pki"}

どこで間違えたのか、それともコードのバグなのかしら。

こんにちは、

@WIZARD-CXYと同じ問題が発生しています。
これに関する更新はありますか?

ありがとう!

cc @jamiehannaford
たぶん、etcdスライスが正しく解析されないかどうかを確認できますか?

@ WIZARD-CXY @akarasikどのバージョンのkubeadmetcdを使用していますか? 私はちょうど以下を試しました、そしてそれは私のために働きました:

root<strong i="9">@c1</strong>: kubeadm version
kubeadm version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.3", GitCommit:"0480917b552be33e2dba47386e51decb1a211df6", GitTreeState:"clean", BuildDate:"2017-05-10T15:38:08Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"}

root<strong i="10">@c1</strong>: curl 127.0.0.1:2379/version
{"etcdserver":"3.1.7","etcdcluster":"3.1.0"}

root<strong i="11">@c1</strong>: cat config.yaml
apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
etcd:
  endpoints:
  - http://127.0.0.1:2379

root<strong i="12">@c1</strong>: kubectl get pods --all-namespaces
NAMESPACE     NAME                         READY     STATUS    RESTARTS   AGE
kube-system   kube-controller-manager-c1   1/1       Running   0          49s
kube-system   kube-dns-3913472980-vxldm    0/3       Pending   0          45s
kube-system   kube-proxy-2d3q4             1/1       Running   0          45s
kube-system   kube-scheduler-c1            1/1       Running   0          56s

また、どこでkubeadm.MasterConfiguration構造体にアクセスしましたか? 自動的にダンプされましたか、それともファイルにデバッグロジックを追加しましたか?

@jamiehannaford kubeadm 1.6.1 etcd 3.0.17
単純なデバッグ出力でkubeadm.MasterConfiguration構造体を取得しました。 たぶん、kubeadmをアップグレードして、今日もう一度試して、ここで結果を更新します。 ご協力いただきありがとうございます

@jamiehannafordkubeadm1.6.3は魅力のように機能します。

@Lokicity新しいバージョンのkubeadmでまだ問題が発生していますか?

修正済みとして終了しています...:+ 1:

https://godoc.org/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1のv1.14の例を参照してください

apiVersion: kubeadm.k8s.io/v1beta1
kind: InitConfiguration
bootstrapTokens:
- token: "9a08jv.c0izixklcxtmnze7"
  description: "kubeadm bootstrap token"
  ttl: "24h"
- token: "783bde.3f89s0fje9f38fhf"
  description: "another bootstrap token"
  usages:
  - authentication
  - signing
  groups:
  - system:bootstrappers:kubeadm:default-node-token
nodeRegistration:
  name: "ec2-10-100-0-1"
  criSocket: "/var/run/dockershim.sock"
  taints:
  - key: "kubeadmNode"
    value: "master"
    effect: "NoSchedule"
  kubeletExtraArgs:
    cgroup-driver: "cgroupfs"
localAPIEndpoint:
  advertiseAddress: "10.100.0.1"
  bindPort: 6443
---
apiVersion: kubeadm.k8s.io/v1beta1
kind: ClusterConfiguration
etcd:
  # one of local or external
  local:
    imageRepository: "k8s.gcr.io"
    imageTag: "3.2.24"
    dataDir: "/var/lib/etcd"
    extraArgs:
      listen-client-urls: "http://10.100.0.1:2379"
    serverCertSANs:
    -  "ec2-10-100-0-1.compute-1.amazonaws.com"
    peerCertSANs:
    - "10.100.0.1"
  # external:
    # endpoints:
    # - "10.100.0.1:2379"
    # - "10.100.0.2:2379"
    # caFile: "/etcd/kubernetes/pki/etcd/etcd-ca.crt"
    # certFile: "/etcd/kubernetes/pki/etcd/etcd.crt"
    # keyFile: "/etcd/kubernetes/pki/etcd/etcd.key"
networking:
  serviceSubnet: "10.96.0.0/12"
  podSubnet: "10.100.0.1/24"
  dnsDomain: "cluster.local"
kubernetesVersion: "v1.12.0"
controlPlaneEndpoint: "10.100.0.1:6443"
apiServer:
  extraArgs:
    authorization-mode: "Node,RBAC"
  extraVolumes:
  - name: "some-volume"
    hostPath: "/etc/some-path"
    mountPath: "/etc/some-pod-path"
    readOnly: false
    pathType: File
  certSANs:
  - "10.100.1.1"
  - "ec2-10-100-0-1.compute-1.amazonaws.com"
  timeoutForControlPlane: 4m0s
controllerManager:
  extraArgs:
    "node-cidr-mask-size": "20"
  extraVolumes:
  - name: "some-volume"
    hostPath: "/etc/some-path"
    mountPath: "/etc/some-pod-path"
    readOnly: false
    pathType: File
scheduler:
  extraArgs:
    address: "10.100.0.1"
extraVolumes:
- name: "some-volume"
  hostPath: "/etc/some-path"
  mountPath: "/etc/some-pod-path"
  readOnly: false
  pathType: File
certificatesDir: "/etc/kubernetes/pki"
imageRepository: "k8s.gcr.io"
useHyperKubeImage: false
clusterName: "example-cluster"
---
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
# kubelet specific options here
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
# kube-proxy specific options here
このページは役に立ちましたか?
0 / 5 - 0 評価