マスターマシンにスレーブノードにのみデプロイするドッカーイメージが含まれるベアメタルマシンに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
---
fiunchinhoが述べたように、Dockerレジストリを設定し、展開に使用できます。
別の解決策は、ジェンキンス、
docker import
から画像をエクスポートすることです あなたの奴隷に環境にdockerレジストリが設定されていない場合、
docker load -i
を使用してワーカーノードにイメージをロードする必要があります。 コマンド
関連記事
- 2つのレプリカを使用したKubernetesの展開:1つのポッドが実行され、他のポッドは失敗します
- Kubernetesスレーブノードで実行されているポッドはContainerCreating状態です
- Kubernetesは展開を作成しますが、利用できません
- gitlabパイプラインでKubernetesデプロイを作成する
- kubernetesでsparkを実行しているファイルアクセスエラー
- 断続的にタイムアウトするAzureのKubernetesでポッドとして実行されるRESTベースのサービス
- kubernetes、仮想マシンは外部サーバーにpingできましたが、仮想マシンにデプロイされたポッドは外部サーバーに接続できませんでした
- デプロイが関連付けられていないKubernetesポッドの本番環境での使用は何ですか?
- Flink110をFlink111にアップグレードします(kubernetesデプロイメントのLog4j)
- Ubuntu 2004でsudoを使用しないDocker?
- mkdirでDockerビルドが失敗する
- 断続的にタイムアウトするAzureのKubernetesでポッドとして実行されるRESTベースのサービス
- ホストからKubernetesサービスIPをカールできません
- Kubernetesローカル開発DB
- Pythonを使用してDockerコンテナーでScyllaDBにアクセスするにはどうすればよいですか?
- docker-composeはどのようにリンクIPのエイリアスを作成しますか
- ダブルタグ付けドッカー画像(最新+設定バージョン)+最新をk8sに展開してから実際のタグを検索しますか?
- Kubernetes(110)mountPropagation:双方向が機能していません。
スレーブはどこかからイメージをダウンロードする必要があります。イメージはスレーブに自動的に配信されません。
dockerhubを使用したくない場合、クラスターから独自のDocker Registryをホストして、そこから画像をダウンロードする必要があります。このガイドは、あなたがそれを行うのに役立ちます。