因为众所周知的原因就不提原因了,这里只写是怎么操作过程
Kubernetes主要由以下几个核心组件组成:
- etcd保存了整个集群的状态;
- apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;
- controller manager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;
- scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;
- kubelet负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理;
- Container runtime负责镜像管理以及Pod和容器的真正运行(CRI);
- kube-proxy负责为Service提供cluster内部的服务发现和负载均衡;
除了核心组件,还有一些推荐的Add-ons:
- kube-dns负责为整个集群提供DNS服务
- Ingress Controller为服务提供外网入口
- Heapster提供资源监控
- Dashboard提供GUI
- Federation提供跨可用区的集群
除了核心组件,还有一些推荐的Add-ons:
- kube-dns 负责为整个集群提供DNS服务
- Ingress Controller 为服务提供外网入口
- Heapster 提供资源监控
- Dashboard 提供GUI
- Federation 提供跨可用区的集群
- Fluentd-elasticsearch 提供集群日志采集、存储与查询
准备操作:阿里云账户,github账户
1、去gcr.io上看看的具体的地址和版本号,查看kubernetes版本号,具体地址如下:
https://console.cloud.google.com/gcr/images/google-containers/GLOBAL
Kubernetes v1.14.2
coredns v1.5.0
etcd-amd64 v3.3.10
kube-apiserver-amd64 v1.14.2
kube-controller-manager-amd64 v1.14.2
kube-proxy-amd64 v1.14.2
kube-scheduler-amd64 v1.14.2
kubernetes-dashboard-amd64 v1.10.1
pause-amd64 3.1
2、在Github上创建相应的Dockerfile
图省事儿就直接下载我的就行,欢迎Fork,地址如下:
https://github.com/luyouli/kubernetes-images
3、在阿里云上面操作
打开阿里云镜像服务,地址如下:
https://cr.console.aliyun.com/
首先创建一个命名空间,然后选择区域–>镜像仓库–>创建镜像仓库
选择GitHub,选择创建的命名空间和之前在github上创建的项目路径,勾选上“海外机器构建”, 勾选上“海外机器构建” , 勾选上“海外机器构建” ,重要的事情说三遍
创建完成之后,选择新建的仓库,选择构建 –> 添加规则
类型和Branch/Tag选择即可,目录和镜像版本需要填写,目录一定要跟github上一一对应,填写完成点确认,然后点击:立即构建。
如果构建没有问题的话,会显示成功
这个镜像版本就是上面自己填写的镜像版本,跟github上的镜像版本没有关系
在左侧的 镜像版本 中可以看到已经创建的镜像
4、配置镜像加速器
5、pull/push镜像
选择一个镜像仓库,在基本信息中就有推送和拉取镜像的具体教程,非常详细
6、下载镜像及修改TAG的脚本
SHELL版:
[root@local ~] # vim kubernetes_images_pull.sh
#!/bin/bash
# set -x
KUBE_VERSION=v1.14.2
KUBE_PAUSE_VERSION=3.1
ETCD_VERSION=3.3.10
COREDNS_VERSION=1.5.0
GCR_URL=gcr.io/google_containers
ALIYUN_URL=registry.cn-beijing.aliyuncs.com/luyouli
Images=(
kube-proxy-amd64:${KUBE_VERSION}
kube-scheduler-amd64:${KUBE_VERSION}
kube-controller-manager-amd64:${KUBE_VERSION}
kube-apiserver-amd64:${KUBE_VERSION}
pause-amd64:${KUBE_PAUSE_VERSION}
etcd-amd64:${ETCD_VERSION}
coredns:${COREDNS_VERSION}
)
for IMAGENAME in ${Images[@]}
do
# 下载阿里云上的容器镜像
docker pull $ALIYUN_URL/$IMAGENAME
# 把阿里云的tag改为gcr.io的,省着改kubernetes了
docker tag $ALIYUN_URL/${IMAGENAME} $GCR_URL/${IMAGENAME}
# 删除tag为阿里云的镜像,省空间
docker rmi $ALIYUN_URL/$IMAGENAME
done
Python 3.6版:
[root@localhost ~]# vim kubernetes_images_pull.py
#!/usr/bin/python3
import os
KUBE_VERSION = ‘v1.14.2’
KUBE_PAUSE_VERSION = ‘3.1’
ETCD_VERSION = ‘3.3.10’
COREDNS_VERSION = ‘1.5.0’
GCR_URL = ‘gcr.io/google_containers’
ALIYUN_URL = ‘registry.cn-beijing.aliyuncs.com/luyouli’
Images = [ “kube-proxy-amd64:%s” % (KUBE_VERSION),
“kube-scheduler-amd64:%s” % (KUBE_VERSION),
“kube-controller-manager-amd64:%s” % (KUBE_VERSION),
“kube-apiserver-amd64:%s” % (KUBE_VERSION),
“pause-amd64:%s” % (KUBE_PAUSE_VERSION),
“etcd-amd64:%s” % (ETCD_VERSION),
“coredns:%s” % (COREDNS_VERSION),
]
for line in Images:
os.system(“/usr/bin/docker pull %s/%s” % (ALIYUN_URL, line))
os.system(“/usr/bin/docker tag %s/%s %s/%s” % (ALIYUN_URL, line, GCR_URL, line))
os.system(“/usr/bin/docker rmi %s/%s” % (ALIYUN_URL, line))
本想用docker模块来处理,调试了两个小时始终调试不通,就放弃改用os模块了
时间太紧写的比较草,回头有空了再好好的整理一下
Good day! This is kind of off topic but I need some advice from an established blog.
Is it difficult to set up your own blog?
I’m not very techincal but I can figure things out pretty quick.
I’m thinking about setting up my own but I’m not sure where to begin. Do you have any tips or suggestions?
Cheers
I seriously love your site.. Excellent colors & theme.
Did you develop this web site yourself? Please reply back as I’m looking to create my own personal website
and would like to learn where you got this from or exactly what
the theme is named. Appreciate it!
Wow, superb blog layout! How long have you been blogging for?
you make blogging look easy. The overall look of your site is excellent, as well as the content!