kubernetesk8s简介及其集群安装部署
Posted S4061222
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kubernetesk8s简介及其集群安装部署相关的知识,希望对你有一定的参考价值。
目录
一、Kubernetes简介
1.k8s简介
-
在Docker 作为高级容器引擎快速发展的同时,在Google内部,容器技术已经应用了很多年,Borg系统运行管理着成千上万的容器应用。
-
Kubernetes项目来源于Borg,可以说是集结了Borg设计思想的精华,并且吸收了Borg系统中的经验和教训。
-
Kubernetes对计算资源进行了更高层次的抽象,通过将容器进行细致的组合,将最终的应用服务交给用户。
Kubernetes的好处
:
-
隐藏资源管理和错误处理,用户仅需要关注应用的开发。
-
服务高可用、高可靠。
-
可将负载运行在由成千上万的机器联合而成的集群中。
2.kubernetes设计架构
- Kubernetes集群包含有节点代理kubelet和Master组件(APIs, scheduler, etc),一切都基于分布式的存储系统。
- 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:提供跨可用区的集群
Fluentd-elasticsearch:提供集群日志采集、存储与查询
- Kubernetes设计理念和功能其实就是一个类似Linux的分层架构
核心层
:Kubernetes最核心的功能,对外提供API构建高层的应用,对内提供插件式应用执行环境
应用层
:部署(无状态应用、有状态应用、批处理任务、集群应用等)和路由(服务发现、DNS解析等)
管理层
:系统度量(如基础设施、容器和网络的度量),自动化(如自动扩展、动态Provision等)以及策略管理(RBAC、Quota、PSP、NetworkPolicy等)
接口层
:kubectl命令行工具、客户端SDK以及集群联邦
生态系统
:在接口层之上的庞大容器集群管理调度的生态系统,可以划分为两个范畴
- Kubernetes外部:日志、监控、配置管理、CI、CD、Workflow、FaaS、OTS应用、ChatOps等
- Kubernetes内部:CRI、CNI、CVI、镜像仓库、Cloud Provider、集群自身的配置和管理等
二、Kubernetes部署
安装环境
四台rhel7.6版本虚拟机,火墙和selinux关闭。
server1:负责harbor容器仓库配置;
server2:负责k8s master节点(cpu为2,mem为2048);
server3:k8s node节点;
server4:k8s node节点;
所有k8s服务器均要能上网。
1.环境清理
删除景象(Server2,3,4相同的操作)
删除服务(Server2,3,4相同的操作)
Server2离开swarm集群
删除不用的网络(Server2,3,4相同的操作)
删除不用的容器(Server2,3,4相同的操作)
删除不用的容器(Server2,3,4相同的操作)
删除文件,重启服务(Server2,3,4相同的操作)
删除不用的数据卷(Server2,3,4相同的操作)
2.k8s引擎配置
k8s部署中需要禁用swap分区,注释掉/etc/fstab分区的定义(Server2,3,4相同的操作)
设定docker cgroup driver:systemd(Server2,3,4相同的操作)
重启docker服务,开机自启动(Server2,3,4相同的操作)
docker info查看(Server2,3,4相同的操作)
免密认证(Server2,与server3和server4)
3.配置k8s的仓库文件并下载软件
编写k8s安装软件仓库文件(Server2,3,4相同的操作)
列出仓库
安装kubelet,kubectl,kubeadm, 设置kubelet服务开机自启(Server2,3,4相同的操作)
4.本地拉取景象(8个),上传至仓库
server1上查看拉取的镜像
创建k8s仓库
上传7个景象到k8s的项目
k8s的项目中查看景象
5.初始化k8s集群
在k8s的节点上执行这条命令,即可将节点加入集群
初始化后,提示操作,此处的操作需要复制粘贴保存起来,方便后续使用。
这里我们时root用户,所以选择按照提示配置环境变量。
配置好环境变量后注销登陆,命令行输入kubectl 然后tab,出现如下情况则证明配置已完成,两个节点未启动
6. 安装flannel组件
使用用flannel网络组件完善集群,将镜像上传harbor仓库,放在library项目中(不加library也是默认)
由于更换电脑,此处的仓库由org.westos.org变更为hyl.westos.org
下载 kube-flannel.yml文件, 修改image路径为仓库路径
启动flannel组件
查看节点情况,所有节点均running
7.将其他节点加入k8s集群
server3、4:
将本机添加到部署好的server2集群中,此处命令为之前保存的初始化命令。
server2中查看节点,server3、server4已经加入集群。
以上是关于kubernetesk8s简介及其集群安装部署的主要内容,如果未能解决你的问题,请参考以下文章
云原生 Kubernetesk8s集群部署springboot项目