k8s基本概念-如何使用私有regsitry
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、参考
- Bypassing kubectl create secrets
- Add ImagePullSecrets to a service account
转载于:https://blog.51cto.com/nosmoking/2062901
k8s基本概念-如何使用私有regsitry相关推荐
- 利用K8S技术栈打造个人私有云(连载之:初章)
我的想法是什么 最近在学习Docker技术,相信Docker技术大家都有所了解,Docker类似于虚拟机(但与虚拟机又有本质不同),提供进程级别的隔离.我们可以利用Docker来方便地来做很多事情,比 ...
- 利用K8S技术栈打造个人私有云(连载之:K8S资源控制)
[利用K8S技术栈打造个人私有云系列文章目录] 利用K8S技术栈打造个人私有云(连载之:初章) 利用K8S技术栈打造个人私有云(连载之:K8S集群搭建) 利用K8S技术栈打造个人私有云(连载之:K8S ...
- Kubernetes(K8s)基本概念:Volume(存储卷)、Persistent Volume
Kubernetes(K8s)基本概念:Volume(存储卷) 一.Volume(存储卷) Volume是Pod中能够被多个容器访问的共享目录. K8s中的Volume定义在Pod上,然后被一个Pod ...
- k8s笔记7.2--搭建私有helm仓库
k8s笔记7.2--搭建私有helm仓库 1 安装基础软件 2 搭建helm私有仓库 3 chart 更新发布和案例 3.1 更新发布 3.2 helm 案例 发布一个busybox chart 4 ...
- k8s:概念以及搭建高可用集群
一.k8s概念和架构 1.k8s概述 k8s是谷歌在2014年开源的容器化集群管理系统 使用k8s进行容器化应用部署 使用k8s利于应用扩展 k8s目标实施让容器化应用程序更加简洁高效 2.特性 (1 ...
- 【Kubernetes】k8s网络概念和实操详细说明【calico网络】【含docker不同容器网络互通配置,k8s网络互通配置】【1】
文章目录 calico网络之间通信配置[docker容器互通流程配置] calico网络原理分析 一.Calico基本介绍 二.Calico结构组成 三.Calico 工作原理 四.Calico网络方 ...
- k8s 重要概念 - 每天5分钟玩转 Docker 容器技术(117)
在实践之前,必须先学习 Kubernetes 的几个重要概念,它们是组成 Kubernetes 集群的基石. Cluster Cluster 是计算.存储和网络资源的集合,Kubernetes 利用 ...
- k8s kafka集群 连接不上_图解 K8s 核心概念和术语
我第一次接触容器编排调度工具是 Docker 自家的 Docker Swarm,主要解决当时公司内部业务项目部署繁琐的问题,我记得当时项目实现容器化之后,花在项目部署运维的时间大大减少了,当时觉得这玩 ...
- 从零开始入门 K8s| 阿里技术专家详解 K8s 核心概念
作者| 阿里巴巴资深技术专家.CNCF 9个 TCO 之一 李响 一.什么是 Kubernetes Kubernetes,从官方网站上可以看到,它是一个工业级的容器编排平台.Kubernetes 这个 ...
- k8s 基础概念和术语
Master k8s里的master指的是集群控制节点,每个k8s集群里需要有一个Master节点来负责整个集群的管理和控制,基本k8s所有控制命令都发给它,它负责整个具体的执行过程,后面执行操作基本 ...
最新文章
- 化敌为友 运营商组团拥抱OTT为哪般
- 使用angular的好处_在项目中使用Angular的最大好处
- hdu1521 排列组合
- 利用OracleCommandBuilder实现 datatable与数据库的增删改
- 分布式实时计算—实时计算相关问题及解决方案
- Google 的开源方法论
- 数据库的恢复 mysql
- ltp-ddt qspi_mtd_dd_rw error can't read superblock on /dev/mtdblock0
- 三星 6.01 android操作系统耗电,三星6.01系统耗电加快是为什么
- STM32F103:二.(6)mrc522卡号读取
- Linux移植随笔:终于解决Tslib的问题了
- Maven构建生命周期和各种plugin插件
- linux分区分错了能改么,linux 分区错误怎么处理
- Android 与 JavaScript 相互调用桥梁 JSBridge
- CAD如何打印出多页PDF保存在一个PDF内
- spotfire Document Property
- 定时器 + websocket
- activiti踩坑2-camunda-modeler设计器与activiti7不兼容
- 社区说|浅谈量子计算机和 Cirq
- No module named ‘torchvision.models.feature_extraction‘
热门文章
- IRQL(转载 自 windows内核情景分析)
- 素数生成器的算法【PHP EDITION】
- 【ArcGIS|空间分析|网络分析】5 计算服务区和创建 OD 成本矩阵
- Windows安装apache+php的nts版本
- 在linux中装多个mysql 服务(亲测有效)
- Android LoaderManager原理剖析
- Linux下如何使用gcc编译器,Linux下gcc编译器的使用总结
- 日均百亿级日志处理:微博基于 Flink 的实时计算平台建设
- MAC安装apache tomcat配置方法图文教程
- Android 跨进程双向通信(Messenger与AIDL)详解