2017-09-27 7 views
0

Kubernetesに自動サイドカーインジェクションでIstioをインストールしようとしています。私の環境は3つのマスターと2つのノードで構成され、Azureコンテナサービスマーケットプレイス製品を使用してAzureで構築されました。自動サイドカーインジェクションを使用してKubernetesにIstioをインストールする:istio-inializer.yaml検証失敗

hereのドキュメントに続いて、私は今までRBACDynamicAdmissionControlを有効にしています。私はこれを達成するために、/etc/kubernetes/istio-inializer.yamlをKubernetes Masterに変更してfollowing content outlined in redを追加してから、Unixコマンドrebootを使ってKubernetes Masterを再起動します。

文書の次のステップは、kubectlを使用してyamlを適用することです。私はドキュメントがIstioリポジトリをクローンすることを意図しており、このステップの前にそれにcdを入れることを意図していると仮定しますが、それは言及されていません。

[email protected]:~/istio$ kubectl apply -f install/kubernetes/istio-initializer.yaml 

configmap "istio-inject" configured 
serviceaccount "istio-initializer-service-account" configured 
error: error validating "install/kubernetes/istio-initializer.yaml": error validating data: found invalid field initializers for v1.ObjectMeta; if you choose to ignore these errors, turn validation off with --validate=false 

Iはvalidate=false、上述フラグでkubectl applyを実行しようとすると、このエラーが代わりに生成されます。次のエラーが発生した後

git clone https://github.com/istio/istio.git 
cd istio 
kubectl apply -f install/kubernetes/istio-initializer.yaml 

[email protected]:~/istio$ kubectl apply -f install/kubernetes/istio-initializer.yaml --validate=false 

configmap "istio-inject" configured 
serviceaccount "istio-initializer-service-account" configured 
deployment "istio-initializer" configured 
error: unable to recognize "install/kubernetes/istio-initializer.yaml": no matches for admissionregistration.k8s.io/, Kind=InitializerConfiguration 

I」はここからどこに行くのかわからない。問題はyamladmissionregistration.k8s.io/v1alpha1ブロックに関連しているように見えますが、このブロックで特に何が正しくないのかはわかりません。インストール済み

apiVersion: admissionregistration.k8s.io/v1alpha1 
kind: InitializerConfiguration 
metadata: 
    name: istio-sidecar 
initializers: 
    - name: sidecar.initializer.istio.io 
    rules: 
     - apiGroups: 
      - "*" 
     apiVersions: 
      - "*" 
     resources: 
      - deployments 
      - statefulsets 
      - jobs 
      - daemonsets 

Kubernetesのバージョン:

[email protected]:~/istio$ kubectl version 
Client Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.6", GitCommit:"7fa1c1756d8bc963f1a389f4a6937dc71f08ada2", GitTreeState:"clean", BuildDate:"2017-06-16T18:21:54Z", GoVersion:"go1.7.6", Compiler:"gc", Platform:"linux/amd64"} 
Server Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.6", GitCommit:"7fa1c1756d8bc963f1a389f4a6937dc71f08ada2", GitTreeState:"clean", BuildDate:"2017-06-16T18:21:54Z", GoVersion:"go1.7.6", Compiler:"gc", Platform:"linux/amd64"} 

私は、これはバージョン管理のミスマッチである疑いがあります。追加質問として、ACSを使用してAzureにkubernetes> = 1.7.4のバージョンを配備することは可能ですか?

私はかなりクーベルネットで働いているので、誰でも助けてくれればとっても感謝しています。あなたの時間をありがとう。

答えて

1

ここで述べたように、アルファ機能はk8sバージョン> 1.7でサポートされているため、バージョン管理上の問題と思われます(https://kubernetes.io/docs/admin/extensible-admission-controllers/#what-are-initializers)。

1.7は、これらの制限に対処する2つのα機能、初期化子と外部入学
ウェブフックを、紹介します。これらの機能により、コントローラがツリーの外で開発され、実行時にコンフィグレーションされるようになります。

そして、Azureにkubernetes> = 1.7.4のバージョンを展開することは可能です。ポータルを使用して配備されたバージョンについて確認してください。しかし、acs-egnineを使用してARMテンプレートを生成すると、バージョン1.7.5のクラスタをデプロイすることは可能です。

手順はhttps://github.com/Azure/acs-engineです。基本的には3つのステップがあります。まず、clusterDefinitionセクションを参照してjsonファイルを作成する必要があります。バージョン1.7.5を使用するには、属性 "orchestratorRelaease"を "1.7"に指定し、属性 "enableRbac"をtrueに指定してRBACを有効にする必要があります。次に、acsエンジン(バージョン> = 0.6.0)を使用して、jsonファイルをARMテンプレート(azuredeploy.json & azuredeploy)に解析します。parameters.jsonを作成する必要があります)。最後に、powershellで "New-AzureRmResourceGroupDeployment"コマンドを使用して、クラスタをAzureにデプロイします。

希望するもの:

+0

ご確認いただきありがとうございます。答えとしてマーク。 –

関連する問題