bugfix> ubuntu > 投稿

マスターマシンにスレーブノードにのみデプロイするドッカーイメージが含まれるベアメタルマシンに2台のマシンのkubernetesクラスターがありますが、イメージストレージにクラウドリポジトリを使用したくない、ジェンキンスからドッカーイメージを構築していますマスターマシンで実行されるジョブ。dockerhubのdockerイメージを使用すると、展開は正常に機能しますが、イメージがマスターマシンにあるときにスレーブノードに展開するとエラーが発生します。

NAME                            READY     STATUS             RESTARTS  AGE
dash-deploy-5bd7cb4484-wvwcr    0/1       ImagePullBackOff   0         22h
hello-deploy-5756df7ff4-mwzcw   1/1       Running            0         21h

hello-deployはdockerハブのdockerイメージを使用し、dash-deployはマスターノードに存在するdockerイメージを使用しますが、両方のデプロイメントはスレーブノードで実行されます。 これを行う方法は他にもたくさんあることは知っていますが、これに関する助けをいただければ幸いです。 私はubuntu 16.04を使用しています

kubeadm version: &version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.2", GitCommit:"81753b10df112992bf51bbc2c2f85208aad78335", GitTreeState:"clean", BuildDate:"2018-04-27T09:10:24Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

kubectl version Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.3", GitCommit:"d2835416544f298c919e2ead3be3d0864b52323b", GitTreeState:"clean", BuildDate:"2018-02-07T12:22:21Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"linux/amd64"}

Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.3", GitCommit:"2bba0127d85d5a46ab4b778548be28623b32d0b0", GitTreeState:"clean", BuildDate:"2018-05-21T09:05:37Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

私のyamlファイルは次のようになります

---
apiVersion: extensions/v1beta1     
kind: Deployment    
metadata:    
  name: dash-deploy    
spec:    
  replicas: 1    
  minReadySeconds: 1    
  strategy:    
    type: RollingUpdate    
    rollingUpdate:    
      maxUnavailable: 1    
      maxSurge: 1    
  template:    
    metadata:    
      labels:    
        app: dashboard    
    spec:    
      containers:    
      - name: dash-pod    
        image: 32:32    
        imagePullPolicy: IfNotPresent    
        ports:    
        - containerPort: 8080    
---    
apiVersion: v1    
kind: Service    
metadata:    
  name: dash-svc    
  labels:    
    app: dashboard    
spec:    
  type: NodePort    
  ports:    
  - port: 8080    
    nodePort: 30002    
    protocol: TCP    
  selector:    
    app: dashboard    
---

回答 3 件
  • スレーブはどこかからイメージをダウンロードする必要があります。イメージはスレーブに自動的に配信されません。

    dockerhubを使用したくない場合、クラスターから独自のDocker Registryをホストして、そこから画像をダウンロードする必要があります。このガイドは、あなたがそれを行うのに役立ちます。

  • fiunchinhoが述べたように、Dockerレジストリを設定し、展開に使用できます。

    別の解決策は、ジェンキンス、 docker import から画像をエクスポートすることです  あなたの奴隷に

  • 環境にdockerレジストリが設定されていない場合、 docker load -i を使用してワーカーノードにイメージをロードする必要があります。  コマンド

あなたの答え