微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

相当于 kubeadm

如何解决相当于 kubeadm

我有 3 个节点的 kubernetes 集群使用 kubeadm 进行管理。以前我使用 kind 和 minikube。当我想根据 docker 镜像进行部署时,我只需要 make:

现在,当我想在 kubeadm 中进行部署时,我显然得到了 ImagePullBackOff。 问题:是否有等效注释将图像添加到 kubeadm 中而我找不到它,或者完全有其他方法可以解决该问题?

编辑

也许,问题不够清楚,所以我没有删除它,而是尝试添加更多细节。

我有树节点(一个控制平面和两个工作器),每个节点都安装了 docker、kubeadm、kubelet 和 kubectl。我未来集群的一种部署是机器学习模块,所以我需要 tensorflow:

docker pull tensorflow/tensorflow

我使用此图像构建自己的图像:

docker build -t mlimage:cluster -f ml.Dockerfile .

接下来我准备deployment.yaml

apiVersion: apps/v1
kind: Deployment
Metadata:
  name: mldeployment
spec:
  selector:
    matchLabels:
      app: mldeployment
      name: mldeployment
  replicas: 1
  template:
    Metadata:
      labels:
        app: mldeployment
        name: mldeployment
    spec:
      containers:
      - name: mlcontainer
        image: mlimage:cluster
        imagePullPolicy: Never
        ports:
        - name: http
          containerPort: 6060

并创建它:

kubectl create -f mldeployment.yaml

现在,当我输入

kubectl describe pod

mldeployment 中有以下事件:

enter image description here

在 minikube 或 kind 的情况下,只需将图像添加到集群类型中就足够了

minikibe cache add ...

kind load docker-image ...

分别。

问题是如何将图像从我的机器添加到集群,以便从 kubeadm 管理它。我认为有类似 minikube 或 kind 的类似方法(无需创建与 docker hub 的任何连接,因为一切都在本地)。

解决方法

您收到 ImagePullBackOff 是因为 kubeadm 可能要检查注册表。

而如果您同时查看命令 minikube cachekind load 用于将本地图像加载到集群中。

,

据我所知,通过 kubeadm 管理的集群映像应该存储在受信任的注册表中,例如 dockerhub 或云。但是,如果您想在分离的网络中快速解决问题,则有一种可能性:Docker registry。 还有一些可以使用的工具,例如Trowsimpler solution。 我使用了第二种方法,它有效(代码有点旧,因此可能需要进行一些更改,此链接可能会有所帮助:change apiVersionadd label

修改之后,首先创建deployment和daemonSet:

kubectl create -f docker-private-registry.json
kubectl create -f docker-private-registry-proxy.json

将本地主机地址添加到图像:

docker tag image:tag 127.0.0.1:5000/image:tag

检查docker私有注册部署的全名,并转发端口(用确切的部署名称替换x:

kubectl get pod
kubectl port-forward docker-private-registry-deployment-xxxxxxxxx-xxxxx 5000:5000 -n default

打开下一个终端窗口并将镜像推送到私有注册表:

docker push 127.0.0.1:5000/image:tag

最终更改 deployment.yaml 文件容器映像(添加 127.0.0.1:5000/...)并创建部署。

此解决方案非常不安全且易受攻击,因此仅在用于测试和开发目的的分离网络中明智地使用它。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。