首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有CRI-O和docker专用注册表的Kubernetes :仅在主节点上运行的pods

具有CRI-O和docker专用注册表的Kubernetes :仅在主节点上运行的pods
EN

Stack Overflow用户
提问于 2022-03-30 03:32:40
回答 1查看 1.1K关注 0票数 2

我在3个VM上运行了一个kubernetes集群,并且我为pods启用了主节点。我还在安装了有效SSL证书的另一个VM上运行了docker专用注册表。我在我的kubernetes集群中使用CRI。这就是我要做的

  1. 配置了Jenkins服务器和kubctl的VM,这样我就可以远程连接到集群。
  2. 单独的VM专门为码头注册表。从Godaddy那里购买SSL证书,并添加/etc/docker/certs.d
  3. 在此文档之后创建的秘密
  4. 在/etc/crio/certs.d所有节点(包括主节点和两个工作节点)中添加证书。我能够从我的jenkins VM和Kubernetes中提取和推送图像,这似乎也很有效,但只在主节点上工作。pod在主节点中工作非常好,但两个工作节点显示证书错误。他们的ImagePullBackOff错误在下面 未能提取图像"imagehub.mydomain.com:443/iam-config-server:0.0.2":rpc错误:代码=未知desc =ping容器注册表imagehub.mydomain.com:443: Get "https://imagehub.mydomain.com:443/v2/":x509:由未知权威机构签名的证书“。

这是一个春季引导应用程序,下面是我的deploy.yml

代码语言:javascript
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  name: iamconfigserver-deploy
spec:
  replicas: 3
  selector:
    matchLabels:
      app: iam-config-server
  minReadySeconds: 10
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 1
      maxSurge: 1
  template:
    metadata:
      labels:
        app: iam-config-server
    spec:
      containers:
      - name: iamconfigserver-pod
        image: imagehub.mydomain.com:443/iam-config-server:0.0.2
        ports:
        - containerPort: 8071
      imagePullSecrets:
      - name: regcred

svc.yml

代码语言:javascript
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  name: iamconfigserver-deploy
spec:
  replicas: 3
  selector:
    matchLabels:
      app: iam-config-server
  minReadySeconds: 10
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 1
      maxSurge: 1
  template:
    metadata:
      labels:
        app: iam-config-server
    spec:
      containers:
      - name: iamconfigserver-pod
        image: imagehub.mydomain.com:443/iam-config-server:0.0.2
        ports:
        - containerPort: 8071
      imagePullSecrets:
      - name: regcred

我可以在主节点上运行这个,并获得secert。

代码语言:javascript
复制
kubectl get secret regcred --output=yaml


apiVersion: v1
data:
  .dockerconfigjson: ew..............Cgl9Cn0=
kind: Secret
metadata:
  creationTimestamp: "2022-03-24T06:20:44Z"
  name: regcred
  namespace: default
  resourceVersion: "471374"
  uid: 2e6ba870-asf3-33dd-8340-sdfsafsdfsd4
type: kubernetes.io/dockerconfigjson

我不知道我在这里错过了什么。我的Kubernetes VM都运行在一个单独的物理服务器上,包括主节点。但是仍然不明白为什么只有荚才能在主节点上成功运行。这是一个开发环境,我理解在主节点上运行荚是不理想的。帮个忙会很感激的。我不确定证书在CRI中的位置是否准确,但在主节点上仍然工作良好。

EN

回答 1

Stack Overflow用户

发布于 2022-08-27 11:16:11

这帮了我:

https://github.com/cri-o/cri-o/issues/1768 https://github.com/Nordix/xcluster/tree/master/ovl/private-reg

我们需要在主节点和工作节点上的CRIO文件中定义本地注册表。

然后,在尝试从每个节点从定义的注册表中提取图像后,它应该可以工作。

crictl拉出注册表-ip:port/imagename

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71671179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档