k8s基本概念-如何使用私有regsitry

2018/1/9

私有 regsitry 使用示例

  • 准备资源
  • 通过 secret 来使用
  • 关联到 serviceAccounts
准备资源
  • 一个私有 regsitry 地址、账号、密码
通过 secret 来使用
### 命令行登录一次 regsitry 后,生成配置:~/.docker/config.json
[root@tvm-00 k8s]# docker login --username=xxx registry.cn-hangzhou.aliyuncs.com### 准备一个 secret
[root@tvm-00 k8s]# cat secrets/hub-aliyun-demo-project-ns-dev.yaml
apiVersion: v1
kind: Secret
metadata:name: hub-aliyun-demo-project-ns-devnamespace: ns-dev
data:.dockerconfigjson: {base64 -w 0 ~/.docker/config.json}
type: kubernetes.io/dockerconfigjson### 注意上述 {base64 -w 0 ~/.docker/config.json} 代表执行该指令后得到到结果:
[root@tvm-00 k8s]# base64 -w 0 ~/.docker/config.json### 创建 secret
[root@tvm-00 k8s]# kubectl apply -f secrets/hub-aliyun-demo-project-ns-dev.yaml
[root@tvm-00 k8s]# kubectl -n ns-dev get secrets
NAME                               TYPE                                  DATA      AGE
default-token-xb8lp                kubernetes.io/service-account-token   3         4d
hub-aliyun-demo-project-ns-dev     kubernetes.io/dockerconfigjson        1         6m
关联到 serviceAccounts
  • 这样一来,每个 pod 创建时,将自动加载该资源

    
    [root@tvm-00 k8s]# kubectl -n ns-dev get serviceAccounts
    NAME      SECRETS   AGE
    default   1         4d
    [root@tvm-00 ns-dev]# kubectl -n ns-dev describe serviceAccounts/default
    Name:                default
    Namespace:           ns-dev
    Labels:              <none>
    Annotations:         <none>
    Image pull secrets:  <none>
    Mountable secrets:   default-token-xb8lp
    Tokens:              default-token-xb8lp
    Events:              <none>

关联

[root@tvm-00 ns-dev]# kubectl -n ns-dev patch serviceaccount default -p '{"imagePullSecrets": [{"name": "hub-aliyun-demo-project-ns-dev"}]}'
serviceaccount "default" patched
[root@tvm-00 ns-dev]# kubectl -n ns-dev describe serviceAccounts/default
Name: default
Namespace: ns-dev
Labels: <none>
Annotations: <none>
Image pull secrets: hub-aliyun-demo-project-ns-dev
Mountable secrets: default-token-xb8lp
Tokens: default-token-xb8lp
Events: <none>


##### 验证
```bash
### 准备一个服务
[root@tvm-00 ns-dev]# cat whoami/k8s.ns-dev.yaml
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:name: s1labels:app.name: whoaminamespace: ns-dev
spec:replicas: 1selector:matchLabels:app.name: whoamitemplate:metadata:labels:app.name: whoamispec:containers:- name: whoamiimage: registry.cn-hangzhou.aliyuncs.com/ns-demo-project/whoami:0.9ports:- containerPort: 80---
apiVersion: v1
kind: Service
metadata:name: s1labels:app.name: whoaminamespace: ns-dev
spec:selector:app.name: whoamiports:- protocol: TCPport: 80targetPort: 80nodePort: 30011type: NodePort[root@tvm-00 ns-dev]# kubectl apply -f ./whoami/k8s.ns-dev.yaml --record
deployment "s1" created
service "s1" created### 服务跑起来后,看看状态是否符合预期
[root@tvm-00 ns-dev]# kubectl -n ns-dev get deploy/s1
NAME      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
s1        1         1         1            1           16s
[root@tvm-00 ns-dev]# kubectl -n ns-dev get pods -l app.name=whoami
NAME                  READY     STATUS    RESTARTS   AGE
s1-65b7fcbfd5-vn4n9   1/1       Running   0          1m[root@tvm-00 ns-dev]# curl localhost:30011
Hostname: s1-65b7fcbfd5-vn4n9---- Http Request Headers ----GET / HTTP/1.1
Host: localhost:30011
User-Agent: curl/7.29.0
Accept: */*---- Active Endpoint ----[howto] version: 0.9curl 127.0.0.1/curl 127.0.0.1/?wait=2scurl 127.0.0.1/testcurl 127.0.0.1/apicurl 127.0.0.1/healthcurl 127.0.0.1/health -d '302'### 看一下 pods 的状态中 Image 相关的信息
[root@tvm-00 ns-dev]# kubectl -n ns-dev describe pods -l app.name=whoami
Name:           s1-65b7fcbfd5-vn4n9
Namespace:      ns-dev
Node:           tvm-02/10.10.9.69
Start Time:     Tue, 02 Jan 2018 14:32:46 +0800
Labels:         app.name=whoamipod-template-hash=2163976981
Annotations:    <none>
Status:         Running
IP:             172.30.11.68
Controlled By:  ReplicaSet/s1-65b7fcbfd5
Containers:whoami:Container ID:   docker://c8e02546250e9e9083f659e315627a75235ae0098d6854293e26c97390ac82f2Image:          registry.cn-hangzhou.aliyuncs.com/ns-demo-project/whoami:0.9Image ID:       docker-pullable://opera443399/whoami@sha256:a05120d9fe157868f7f1c8b842cc860fb58665d74cadaf8eb7d6091af626cccdPort:           80/TCPState:          RunningStarted:      Tue, 02 Jan 2018 14:32:47 +0800Ready:          TrueRestart Count:  0Environment:    <none>Mounts:/var/run/secrets/kubernetes.io/serviceaccount from default-token-xb8lp (ro)
Conditions:Type           StatusInitialized    TrueReady          TruePodScheduled   True
Volumes:default-token-xb8lp:Type:        Secret (a volume populated by a Secret)SecretName:  default-token-xb8lpOptional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300snode.kubernetes.io/unreachable:NoExecute for 300s
Events:Type    Reason                 Age   From                             Message----    ------                 ----  ----                             -------Normal  Scheduled              1m    default-scheduler                Successfully assigned s1-65b7fcbfd5-vn4n9 to tvm-02Normal  SuccessfulMountVolume  1m    kubelet, tvm-02  MountVolume.SetUp succeeded for volume "default-token-xb8lp"Normal  Pulling                1m    kubelet, tvm-02  pulling image "registry.cn-hangzhou.aliyuncs.com/ns-demo-project/whoami:0.9"Normal  Pulled                 1m    kubelet, tvm-02  Successfully pulled image "registry.cn-hangzhou.aliyuncs.com/ns-demo-project/whoami:0.9"Normal  Created                1m    kubelet, tvm-02  Created containerNormal  Started                1m    kubelet, tvm-02  Started container

ZYXW、参考

  1. Bypassing kubectl create secrets
  2. Add ImagePullSecrets to a service account

转载于:https://blog.51cto.com/nosmoking/2062901

k8s基本概念-如何使用私有regsitry相关推荐

  1. 利用K8S技术栈打造个人私有云(连载之:初章)

    我的想法是什么 最近在学习Docker技术,相信Docker技术大家都有所了解,Docker类似于虚拟机(但与虚拟机又有本质不同),提供进程级别的隔离.我们可以利用Docker来方便地来做很多事情,比 ...

  2. 利用K8S技术栈打造个人私有云(连载之:K8S资源控制)

    [利用K8S技术栈打造个人私有云系列文章目录] 利用K8S技术栈打造个人私有云(连载之:初章) 利用K8S技术栈打造个人私有云(连载之:K8S集群搭建) 利用K8S技术栈打造个人私有云(连载之:K8S ...

  3. Kubernetes(K8s)基本概念:Volume(存储卷)、Persistent Volume

    Kubernetes(K8s)基本概念:Volume(存储卷) 一.Volume(存储卷) Volume是Pod中能够被多个容器访问的共享目录. K8s中的Volume定义在Pod上,然后被一个Pod ...

  4. k8s笔记7.2--搭建私有helm仓库

    k8s笔记7.2--搭建私有helm仓库 1 安装基础软件 2 搭建helm私有仓库 3 chart 更新发布和案例 3.1 更新发布 3.2 helm 案例 发布一个busybox chart 4 ...

  5. k8s:概念以及搭建高可用集群

    一.k8s概念和架构 1.k8s概述 k8s是谷歌在2014年开源的容器化集群管理系统 使用k8s进行容器化应用部署 使用k8s利于应用扩展 k8s目标实施让容器化应用程序更加简洁高效 2.特性 (1 ...

  6. 【Kubernetes】k8s网络概念和实操详细说明【calico网络】【含docker不同容器网络互通配置,k8s网络互通配置】【1】

    文章目录 calico网络之间通信配置[docker容器互通流程配置] calico网络原理分析 一.Calico基本介绍 二.Calico结构组成 三.Calico 工作原理 四.Calico网络方 ...

  7. k8s 重要概念 - 每天5分钟玩转 Docker 容器技术(117)

    在实践之前,必须先学习 Kubernetes 的几个重要概念,它们是组成 Kubernetes 集群的基石. Cluster  Cluster 是计算.存储和网络资源的集合,Kubernetes 利用 ...

  8. k8s kafka集群 连接不上_图解 K8s 核心概念和术语

    我第一次接触容器编排调度工具是 Docker 自家的 Docker Swarm,主要解决当时公司内部业务项目部署繁琐的问题,我记得当时项目实现容器化之后,花在项目部署运维的时间大大减少了,当时觉得这玩 ...

  9. 从零开始入门 K8s| 阿里技术专家详解 K8s 核心概念

    作者| 阿里巴巴资深技术专家.CNCF 9个 TCO 之一 李响 一.什么是 Kubernetes Kubernetes,从官方网站上可以看到,它是一个工业级的容器编排平台.Kubernetes 这个 ...

  10. k8s 基础概念和术语

    Master k8s里的master指的是集群控制节点,每个k8s集群里需要有一个Master节点来负责整个集群的管理和控制,基本k8s所有控制命令都发给它,它负责整个具体的执行过程,后面执行操作基本 ...

最新文章

  1. 化敌为友 运营商组团拥抱OTT为哪般
  2. 使用angular的好处_在项目中使用Angular的最大好处
  3. hdu1521 排列组合
  4. 利用OracleCommandBuilder实现 datatable与数据库的增删改
  5. 分布式实时计算—实时计算相关问题及解决方案
  6. Google 的开源方法论
  7. 数据库的恢复 mysql
  8. ltp-ddt qspi_mtd_dd_rw error can't read superblock on /dev/mtdblock0
  9. 三星 6.01 android操作系统耗电,三星6.01系统耗电加快是为什么
  10. STM32F103:二.(6)mrc522卡号读取
  11. Linux移植随笔:终于解决Tslib的问题了
  12. Maven构建生命周期和各种plugin插件
  13. linux分区分错了能改么,linux 分区错误怎么处理
  14. Android 与 JavaScript 相互调用桥梁 JSBridge
  15. CAD如何打印出多页PDF保存在一个PDF内
  16. spotfire Document Property
  17. 定时器 + websocket
  18. activiti踩坑2-camunda-modeler设计器与activiti7不兼容
  19. 社区说|浅谈量子计算机和 Cirq
  20. No module named ‘torchvision.models.feature_extraction‘

热门文章

  1. IRQL(转载 自 windows内核情景分析)
  2. 素数生成器的算法【PHP EDITION】
  3. 【ArcGIS|空间分析|网络分析】5 计算服务区和创建 OD 成本矩阵
  4. Windows安装apache+php的nts版本
  5. 在linux中装多个mysql 服务(亲测有效)
  6. Android LoaderManager原理剖析
  7. Linux下如何使用gcc编译器,Linux下gcc编译器的使用总结
  8. 日均百亿级日志处理:微博基于 Flink 的实时计算平台建设
  9. MAC安装apache tomcat配置方法图文教程
  10. Android 跨进程双向通信(Messenger与AIDL)详解