前言
Kubernetes 学习笔记,记录下来!💻🦍
什么是Kubernetes (k8s)?
Kubernetes(k8s) 是Google开源的容器集群管理系统。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。
Kubernetes在希腊语中意思是船长或领航员,这也恰好与它在容器集群管理中的作用吻合,即作为装载了集装箱(Container)的众多货船的指挥者,负担着全局调度和运行监控的职责。
架构:
Kubernetes 主要由以下几个核心组件组成:
- Etcd 保存了整个集群的状态;
- API server 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;
- Controller manager 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;
- Scheduler 负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;
- Kubelet 负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理;
- Container runtime 负责镜像管理以及Pod和容器的真正运行(CRI);
- Kube-proxy 负责为Service提供cluster内部的服务发现和负载均衡。
图片来源于Kubernetes中文文档.
创建Kubernetes集群
- 本地服务器方案
本地服务器方案在一台物理机上创建拥有一个或者多个Kubernetes节点的单机集群。这种单机集群的规模和可用性都受限于单台机器。
基于Docker本地运行Kubernetes
mac新版本的Docker for Mac自带Kubernetes,Enable后就会自动开启下载,需要注意的是,下载的时候需要翻墙,解决办法:代理;寻找国内镜像下载。
- Docker for Mac 开启 Kubernetes 下载一般要很久
为 Docker daemon 配置 Docker Hub 的中国官方镜像加速 registry.docker-cn.com
- 预先从阿里云Docker镜像服务下载 Kubernetes 所需要的镜像
$ git clone https://github.com/AliyunContainerService/k8s-for-docker-desktop
cd k8s-for-docker-desktop
复制代码
- 加载镜像(注:在Bash下执行)
$ ./load_images.sh
复制代码
注意:等待几分钟镜像下载完成。
- 可选的步骤: 切换Kubernetes运行上下文至 docker-for-desktop
# 一般只有在之前用其他方式运行过Kubernetes才需要
$ kubectl config use-context docker-for-desktop
复制代码
- 验证 Kubernetes 集群状态
$ kubectl cluster-info
$ kubectl get nodes
复制代码
- 部署 Kubernetes dashboard
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
# 开启本机访问代理
$ kubectl proxy
复制代码
- 创建Dashboard管理员用户并用Token登陆: 查看官网说明
# 创建 ServiceAccount kubernetes-dashboard-admin 并绑定集群管理员权限
$ kubectl apply -f dashboard-admin.yaml
# 获取登陆 token
$ kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep kubernetes-dashboard-admin | awk '{print $1}')
复制代码
输入上一步获取的token, 验证并登陆。
- 通过如下链接访问 Dashboard:
http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
最后
下期学习如何在CentOS 7上安装配置使用k8s实现集群。👊
欢迎关注个人微信公众号:桃李报春 个人博客:leeyunt.top