Docker Image 推到阿里云仓库,可以看 SpringBoot Docker 发布到 阿里仓库

1. 阿里镜像仓库加了授权,所以 K8S 拉之前要做下授权处理

[root@k8smaster ~]# kubectl create secret docker-registry registry-demo  \
--namespace=default \
--docker-server=registry.cn-shanghai.aliyuncs.com \
--docker-username=hi帐户ID@aliyun.com \
--docker-password=vipsoft \
--docker-email=xxxxx@qq.com
secret/registry-demo created
[root@k8smaster ~]# kubectl get secrets
NAME TYPE DATA AGE
default-token-q7lps kubernetes.io/service-account-token 3 5d17h
registry-demo kubernetes.io/dockerconfigjson 1 2m53s
[root@k8smaster ~]# kubectl describe secrets registry-demo
Name: registry-demo
Namespace: default
Labels: <none>
Annotations: <none> Type: kubernetes.io/dockerconfigjson Data
====
.dockerconfigjson: 196 bytes
[root@k8smaster ~]#

解释说明:

[root@k8smaster ~]# kubectl create secret docker-registry registry-demo  \ #创建类型为:docker-registry的secrets名称为registry-demo
--namespace=default \ # K8S 的命名空间,非阿里云仓库的命名空间,值 default 可不写,默认为 default, 不同Namespace,在创建secrets时需要指定Namespace,
--docker-server=registry.cn-shanghai.aliyuncs.com \ #阿里云镜像仓库,公网地址
--docker-username=hi帐户ID@aliyun.com \ #阿里云的帐号
--docker-password=vipsoft \ #仓库的密码,在 仓库管理-> 访问凭证中可设置
--docker-email=xxxx@qq.com # 用户邮箱
[root@k8smaster ~]# kubectl get secret registry-demo -o yaml #查看secret详细信息

2. 生成 yaml ,并修改yaml 配置 imagePullSecrets,否则后面会报 ImagePullBackOff,拉取需要登录 requested access to the resource is denied

K8S 拉取镜像 ImagePullBackOff pull access denied

[root@k8smaster ~]# kubectl create deployment javademo1 --image=registry.cn-shanghai.aliyuncs.com/vipsoft/vipsoft:1.0 --dry-run -o yaml > javademo1.yaml
W1018 18:49:33.112150 62765 helpers.go:535] --dry-run is deprecated and can be replaced with --dry-run=client.
[root@k8smaster ~]# vi javademo1.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: javademo1
name: javademo1
spec:
replicas: 1
selector:
matchLabels:
app: javademo1
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: javademo1
spec:
containers:
- image: registry.cn-shanghai.aliyuncs.com/vipsoft/vipsoft:1.0
name: vipsoft
resources: {}
imagePullSecrets:
- name: registry-demo
status: {}

3. 创建容器

[root@k8smaster ~]# kubectl apply -f javademo1.yaml
deployment.apps/javademo1 created
[root@k8smaster ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
javademo1-84dd5c9485-8ckk6 0/1 ContainerCreating 0 6s
nginx-f89759699-5hkdw 1/1 Running 0 5d17h
[root@k8smaster ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
javademo1-84dd5c9485-8ckk6 1/1 Running 0 65s
nginx-f89759699-5hkdw 1/1 Running 0 5d17h
[root@k8smaster ~]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
javademo1-84dd5c9485-8ckk6 1/1 Running 0 111s 10.244.1.4 k8snode1 <none> <none>
nginx-f89759699-5hkdw 1/1 Running 0 5d17h 10.244.2.2 k8snode2 <none> <none>
[root@k8smaster ~]# kubectl scale deployment javademo1 --replicas=3 # 扩容3个服务
deployment.apps/javademo1 scaled
[root@k8smaster ~]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
javademo1-84dd5c9485-7vgkr 0/1 ImagePullBackOff 0 16s 10.244.2.6 k8snode2 <none> <none>
javademo1-84dd5c9485-8ckk6 1/1 Running 0 6m21s 10.244.1.4 k8snode1 <none> <none>
javademo1-84dd5c9485-8hfmd 0/1 ImagePullBackOff 0 16s 10.244.2.7 k8snode2 <none> <none>
nginx-f89759699-5hkdw 1/1 Running 0 5d17h 10.244.2.2 k8snode2 <none> <none>
[root@k8smaster ~]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
javademo1-84dd5c9485-7vgkr 1/1 Running 0 58s 10.244.2.6 k8snode2 <none> <none>
javademo1-84dd5c9485-8ckk6 1/1 Running 0 7m3s 10.244.1.4 k8snode1 <none> <none>
javademo1-84dd5c9485-8hfmd 1/1 Running 0 58s 10.244.2.7 k8snode2 <none> <none>
nginx-f89759699-5hkdw 1/1 Running 0 5d17h 10.244.2.2 k8snode2 <none> <none>
[root@k8smaster ~]# kubectl expose deployment javademo1 --port=8111 --target-port=8111 --type=NodePort # 对外暴露端口,不然不能访问
service/javademo1 exposed
[root@k8smaster ~]# kubectl get svc #查看 service 的运行状态
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
javademo1 NodePort 10.106.43.46 <none> 8111:31452/TCP 25s
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 5d17h
nginx NodePort 10.103.87.81 <none> 80:30339/TCP 5d17h
[root@k8smaster ~]#

4. 测试

 5. 补充

CrashLoopBackOff 容器退出,kubelet正在将它重启
InvalidImageName 无法解析镜像名称
ImageInspectError 无法校验镜像
ErrImageNeverPul 策略禁止拉取镜像
ImagePullBackOff 正在重试拉取
RegistryUnavailable 连接不到镜像中心
ErrImagePull 通用的拉取镜像出错
CreateContainerConfigError 不能创建kubelet使用的容器配置
CreateContainerError 创建容器失败
m.internalLifecycle.PreStartContainer 执行hook报错
RunContainerError 启动容器失败
PostStartHookError 执行hook报错
ContainersNotInitialized 容器没有初始化完毕
ContainersNotReady 容器没有准备完毕
ContainerCreating 容器创建中
PodInitializing pod初始化中
DockerDaemonNotReady docker还没有完全启动
NetworkPluginNotReady 网络插件还没有完全启动
Evicted 即驱赶的意思,意思是当节点出现异常时,kubernetes将有相应的机制驱赶该节点上的Pod。多见于资源不足时导致的驱赶。

Kubernetes(K8S) Deployment 拉取阿里云镜像部署的更多相关文章

  1. kolla-ansible 安装openstack 拉取阿里云镜像时报错

     TASK [mariadb : Pulling mariadb image] ************************************************************ ...

  2. kubernetes国内镜像拉取

    因国内访问不到goole服务器,只能拉取国内的镜像,这里以阿里云为例. 安装minikube时报failed to pull image "k8s.gcr.io/kube-apiserver ...

  3. kubernetes配置secret拉取私仓镜像

    2017.05.10 19:48* 字数 390 阅读 5216评论 0喜欢 8 对于公司内部的项目, 我们不可能使用公有开放的镜像仓库, 一般情况可能会花钱买docker私仓服务, 或者说自己在服务 ...

  4. Kubernetes Pod 镜像拉取策略

    Kubernetes Pod 镜像拉取策略 官方文档:https://kubernetes.io/docs/concepts/containers/images/ • IfNotPresent:默认值 ...

  5. kubernetes之镜像拉取策略ImagePullSecrets;

    1.容器镜像是什么? 1.容器镜像(Container Image)是最终运行的软件: 2.容器镜像(最初为Docker镜像,现在叫OCI镜像更合适)是将软件打包的形式.但是容器镜像还可以携带额外的设 ...

  6. k8s配置拉取镜像密钥

    一.部署步骤 1.创建阿里云镜像仓库 2.创建Secret绑定镜像仓库账号 3.创建Deployment绑定Secret 二.创建阿里云镜像仓库 1.进入阿里云容器镜像服务,创建个人版实例 2.设置登 ...

  7. 【kubernetes secret 和 aws ecr helper】kubernetes从docker拉取image,kubernetes docker私服认证(argo docker私服认证),no basic auth credentials错误解决

    aws ecr helper: https://aws.amazon.com/blogs/compute/authenticating-amazon-ecr-repositories-for-dock ...

  8. K8s 从懵圈到熟练 – 镜像拉取这件小事

    作者 | 声东 阿里云售后技术专家 导读:相比 K8s 集群的其他功能,私有镜像的自动拉取,看起来可能是比较简单的.而镜像拉取失败,大多数情况下都和权限有关.所以,在处理相关问题的时候,我们往往会轻松 ...

  9. 基于Kubernetes(k8s)部署Dubbo+Nacos服务

    一.说明 本文介绍基于 Kubernetes(k8s) 环境集成阿里云 私有镜像仓库 来部署一套 Dubbo + Nacos 的微服务系统,并使用 Kubernetes DNS 以及 port-for ...

  10. k8s实战之从私有仓库拉取镜像 - kubernetes

    1.实战目的 从私有docker仓库拉取镜像,部署pod.上一篇中,我们搭建了私有的镜像仓库,这一篇我们将与k8s结合实战使用私有仓库. 2.登录docker 为了完成本次实战,需要登录docker, ...

随机推荐

  1. [Python急救站课程]五角星的绘制

    五角星的绘制 from turtle import * # 从turtle库中导入所有函数 fillcolor("red") # 表示填充红色 begin_fill() # 表示开 ...

  2. Error running 'TestAlterNickname.test': Command line is too long. Shorten command line for TestAlterNickname.test or also for JUnit default configuration

    问题描述 如图IDEA报错问题,发生在我用JUnit进行测试时. 解决方法 1. 直接点击 default 2. Modify options -> Shorten command line 3 ...

  3. 浅谈斜率优化DP

    前言 考试 T2 出题人放了个树上斜率优化 DP,直接被同校 OIER 吊起来锤. 离 NOIP 还有不到一周,赶紧学一点. 引入 斜率 斜率,数学.几何学名词,是表示一条直线(或曲线的切线)关于(横 ...

  4. (Good topic)字符串的最大公因子 (3.21leetcode每日打卡)

      对于字符串 S 和 T,只有在 S = T + ... + T(T 与自身连接 1 次或多次)时,我们才认定 "T 能除尽 S". 返回最长字符串 X,要求满足 X 能除尽 s ...

  5. MIGO配置过账后自动打印

    1.业务需求 本文档介绍,当MIGO发货过账时,自动打印自开发表格. 2.打印程序 复制标准配置中调用的程序和子例程,到新的程序(路径可参考下文系统配置) 只用复制子例程entry_wa01即可,参考 ...

  6. top命令和ps命令

    top 命令和 ps 命令 ps 命令 ps 命令查看系统的瞬时信息.通常使用ps -ef | grep 进程名, -e 代表显示所有进程,-f 表示做一个更为完整的输出.经常使用这个命令获得进程的 ...

  7. LeetCode-Java:122. 买卖股票的最佳时机Ⅱ

    题目 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格. 在每一天,你可以决定是否购买和/或出售股票.你在任何时候 最多 只能持有 一股 股票.你也可以先购买, ...

  8. 如何生成core文件进行项目调试

    由于项目前期的调试错误比较多,或者有某些隐藏危险:例如内存泄漏:偶尔才出现一次,如果没有捕捉错误的手段可能好不容易出现的机会就溜走了,所以生成core文件是必要的,发生段错误会生成相应的core文件, ...

  9. ASR项目实战-构建Kaldi

    准备工作 安装构建时依赖的基础软件 软件清单如下: bzip2 python3 automake libtool cmake gcc g++ gfortran git subversion 不同平台安 ...

  10. 【eBPF-03】进阶:BCC 框架中 BPF 映射的应用 v1.0

    eBPF 中实现内核态代码与用户态代码是可以实时通信的,这主要靠 BPF 映射 来实现. BPF 映射 是内核空间的一段内存,以 键值对 的方式存储.内核态程序可以直接访问 BPF 映射,用户态需要通 ...