k8s实战-如何使用私有镜像仓库

概述

本文介绍如何通过创建Secret来拉取私有镜像仓库的镜像,从而完成Deployment的创建。

使用私有仓库的问题

  1. 拉取镜像时需要认证

​ 使用私有仓库时需要通过用户名和密码进行认证。所以,若是直接配置镜像仓库的地址,无法拉取到镜像文件,会报拉取镜像的错误。

  1. 可能由于网络问题导致镜像拉取失败

​ 若是通过公网来拉取镜像,可能会由于网络原因导致惊醒拉取失败。

使用方式说明

在使用私有仓库时,需要进行认证。可以通过以下步骤来使用私有仓库:

  1. 在对应命名空间下创建一个Secret对象

创建secret的命令如下:

kubectl create secret docker-registry myregistrykey \
--docker-server=mycluster.icp:8500 \
--docker-username=<user_name> \
--docker-password=<user_password> \
--docker-email=<user_email> \
--namespace mynamespace
  1. 在创建pod或deployment的配置文件中引用该Secret对象

也就是在选项imagePullSecrets中指定myregistrykey。

apiVersion: apps/v1beta2
  kind: Deployment
  metadata:
    name: nginx-demo
  spec:
    replicas: 1
    selector:
      matchLabels:
        app: nginx
    template:
      metadata:
        labels:
          app: nginx
      spec:
        hostNetwork: false
        containers:
        - name: nginx
          image: mycluster.icp:8500/developer/nginx
          ports: []
          resources:
            limits: {}
        imagePullSecrets:
        - name: myregistrykey

这里一定要注意imagePullSecrets选项的位置,不要搞错了。其name,就是第1步我们创建的secret对象的名称。

使用Secret的实战步骤

创建secret
kubectl create secret docker-registry node-9005-pull-secret \
    --docker-server=xxx-vpc.cn-beijing.cr.aliyuncs.com \
    --docker-username=myuser \
    --docker-password=mypass \
    --docker-email=myuser@126.com \
    --namespace mytest
创建Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
  name: node-9005-dep
  namespace: mytest
spec:
  replicas: 2
  selector:
    matchLabels:
      app: node-9005
  template:
    metadata:
      name: node-9005
      labels:
        app: node-9005
    spec:
      containers:
      - name: nodejs
        image: xxx-vpc.cn-beijing.cr.aliyuncs.com/others/node-9005:20230505
        imagePullPolicy: IfNotPresent
      imagePullSecrets:
      - name: node-9005-pull-secret

注意:我这里用的是阿里云的仓库,所以使用了vpc的域名来拉取惊醒,这样镜像拉取会容易。

参考文献

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: K8s Metrics Server是一个Kubernetes集群中的组件,用于收集和存储集群中各种资源的度量数据,例如CPU、内存、网络等。它可以提供实时的度量数据,帮助管理员和开发人员更好地了解集群的状态和性能,并进行优化和调整。 ### 回答2: k8s metrics-server是Kubernetes的一个组件,它被设计用于收集集群内的性能指标。这些指标包括容器和节点的CPU使用率、内存使用量、网络I/O等等。利用这些指标,可以更好的了解集群中的资源使用情况,从而做出相应的资源分配和优化决策。 在Kubernetes中,集群管理员经常需要监控集群内部每个节点和容器的性能情况,这是为了确保应用程序在正确的资源调度下正常运行。为了监控这些性能指标,需要使用一些工具来帮助收集、分析和存储指标数据。而k8s metrics-server正是为此而设计的。 k8s metrics-server采用的是轻量级的部署模式,可以轻松地在Kubernetes集群中进行安装和配置。它具有以下优点: 1.快速部署:k8s metrics-server非常轻量,可以非常快速地部署到Kubernetes集群中。 2.高效:k8s metrics-server具有高效的数据收集和存储能力,能够实时地监控和收集节点和容器的性能指标。 3.可扩展:k8s metrics-server可以轻松地扩展到集群的规模,以便于更好地适应性能监控的需求。 总之,k8s metrics-server是Kubernetes集群内必备的性能指标收集器,以便于运维和开发人员更好地了解集群的性能情况,保障应用程序的可靠性和高可用性。 ### 回答3: K8s Metrics Server是一个通过K8s的APIs来收集、聚合以及输出资源的使用情况的组件,主要用于扩展Kubernetes集群的监控及自动化调整容器资源。通过Metrics Server,用户可以查看当前K8s集群的完整资源使用情况,并能够在资源不足或者超量使用时自动调整容器资源。 K8s Metrics Server的基本原理是通过启动一个服务,并通过访问K8s各种组件的API endpoints来获取当前容器和集群资源使用状态。Metrics Server在收集到的数据中,主要包括CPU、memory以及network的使用率、请求流量、响应时间等信息。同时,可以基于这些数据来为Pods、Deployments、DaemonSets等对象提供水平自动扩容和增量调整的服务。 在K8s Metrics Server中,最重要的组件是Heapster,它作为Metrics Server的扩展组件,负责对收集到的所有的K8s集群的资源使用数据进行经过处理之后进行监控和分析。通过Heapster可以实现的监控和提醒,包括对Pods、Deployments、DaemonSets等对象的资源使用情况的监控,集群负荷的观察,容器状态的查询等。 总的来说,K8s Metrics Server是K8s设计的一个非常重要的组件,它能够帮助K8s构建一个可靠的、基于资源监控的自动化调整平台,为用户提供可靠、高效的容器资源调度服务。对于企业用户而言,K8s Metrics Server的使用不仅能够提升企业应用的稳定性和可靠性,也能够降低系统维护与调整的成本,提升效率和便捷性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值