2016-12-11 6 views
0

を使用して、私はK8Sにbatch/v2alpha1apps/v1alpha1を使用できるようにする必要があります。現在、1.5.0-beta.1がインストールされたクラスタを実行しています。私は、展開スクリプトでこれを行うことを好むだろうが、私が見つけることができるすべてのフィールドまたは--runtime-config設定

"apiVersionDefault": "2016-03-30", 
"apiVersionStorage": "2015-06-15", 

そして、どこにも私はそれらを更新するために使用する日付かについて何かを見つけることができます。 kubernetes docsには、kubes-apiserverで--runtime-configフラグを使用する方法を説明するいくつかの指示もあります。そのため、私はsshを使ってmasterに行き、kube-apiserverマニフェストファイルを見つけ、そのように見えるように編集しました:

ほとんど私のクラスターを被爆

apiVersion: "v1" kind: "Pod" metadata: name: "kube-apiserver" namespace: "kube-system" labels: tier: control-plane component: kube-apiserver spec: hostNetwork: true containers: - name: "kube-apiserver" image: "gcr.io/google_containers/hyperkube-amd64:v1.5.0-beta.1" command: - "/hyperkube" - "apiserver" - "--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,ResourceQuota" - "--address=0.0.0.0" - "--allow-privileged" - "--insecure-port=8080" - "--secure-port=443" - "--cloud-provider=azure" - "--cloud-config=/etc/kubernetes/azure.json" - "--service-cluster-ip-range=10.0.0.0/16" - "--etcd-servers=http://127.0.0.1:4001" - "--tls-cert-file=/etc/kubernetes/certs/apiserver.crt" - "--tls-private-key-file=/etc/kubernetes/certs/apiserver.key" - "--client-ca-file=/etc/kubernetes/certs/ca.crt" - "--service-account-key-file=/etc/kubernetes/certs/apiserver.key" - "--v=4" - "--runtime-config=batch/v2alpha1,apps/v1alpha1" volumeMounts: - name: "etc-kubernetes" mountPath: "/etc/kubernetes" - name: "var-lib-kubelet" mountPath: "/var/lib/kubelet" volumes: - name: "etc-kubernetes" hostPath: path: "/etc/kubernetes" - name: "var-lib-kubelet" hostPath: path: "/var/lib/kubelet"

は...ので、私は今、完全に途方に暮れてよ。私はクラスタを再構築する必要があるので、これを展開テンプレートに追加することをお勧めしますが、実際には助けになると思います。

+0

さらにこれを取得しましたか?私は関連する問題を開いたhttps://github.com/Azure/acs-engine/issues/178 –

+0

私はしませんでした。 ACSのk8はhyperkube(つまりドッキング用のコンテナ内で動作するサービス)を使用しているため、何かを更新することはほとんど不可能です。 – josibake

答えて

0

ACSエンジンクラスタでは、オーバーライドするほとんどのオプションを指定できます。this document for the cluster definitionsを参照してください。私は、配備後のスクリプトは存在しないと考えています。なぜなら、K8のバージョンのアップグレード以外の配備後に、apicontrollerや他のk8コンポーネントで変更したい共通のオプションがないからです。この目的のために、ACS-Engineに含まれるスクリプトや、さまざまなクラウドプロバイダーとkubernetesのフレーバー(つまり、Tectonicには自動アップグレードの仕組みがあります)のためのオプションが含まれています。

は手動K8Sクラスタ展開ACS-エンジンの展開後の値を上書きするには、手動でここにマニフェストを更新することができます。

/etc/kubernetes/manifests/kube-apiserver.yaml 
/etc/kubernetes/manifests/kube-controller-manager.yaml 
/etc/kubernetes/manifests/kube-scheduler.yaml 

をし、また、ここkubeletの値を更新する(すなわち、更新しますkubernetesのバージョン):もちろん/etc/default/kubelet

あなたは、これらの変更を行う前に、あなたのノードをkubectl drainするノードを再起動し、ノードがオンラインに戻って来て、適切にkubectl uncordonノードを実行している一度ます。

あなたのクラスタがなぜもっと情報を知らずに裸にされたのかが分かりません。一般的には、apiversionsや設定に多くの変更を加えているのであれば、おそらく新しいクラスタを必要とするのがおそらく最も良いと言えます。

関連する問題