k8s部署

一、Kubernetes简介

在Docker 作为高级容器引擎快速发展的同时,在Google内部,容器技术已经应用了很多年,Borg系统运行管理着成千上万的容器应用。Kubernetes项目来源于Borg,可以说是集结了Borg设计思想的精华,并且吸收了Borg系统中的经验和教训。Kubernetes对计算资源进行了更高层次的抽象,通过将容器进行细致的组合,将最终的应用服务交给用户。

1、Kubernetes的优点:

隐藏资源管理和错误处理,用户仅需要关注应用的开发; 服务高可用、高可靠; 可将负载运行在由成千上万的机器联合而成的集群中。

Kubernetes集群包含有节点代理kubelet和Master组件(APIs, scheduler,
etc),一切都基于分布式的存储系统。

2、Kubernetes核心组件

etcd:保存了整个集群的状态; apiserver:提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;
controller manager:负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;
scheduler:负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;
kubelet:负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理; Container
runtime:负责镜像管理以及Pod和容器的真正运行(CRI);
kube-proxy:负责为Service提供cluster内部的服务发现和负载均衡。

3、Add-ons(附加功能)

kube-dns:负责为整个集群提供DNS服务; Ingress Controller:为服务提供外网入口;
Heapster:提供资源监控; Dashboard:提供GUI; Federation:提供跨可用区的集群;
Fluentd-elasticsearch:提供集群日志采集、存储与查询。

Kubernetes设计理念和功能其实就是一个类似Linux的分层架构

4、kubernetes设计架构

核心层:Kubernetes最核心的功能,对外提供API构建高层的应用,对内提供插件式应用执行环境;
应用层:部署(无状态应用、有状态应用、批处理任务、集群应用等)和路由(服务发现、DNS解析等);
管理层:系统度量(如基础设施、容器和网络的度量),自动化(如自动扩展、动态Provision等)以及策略管理(RBAC、Quota、PSP、NetworkPolicy等);
接口层:kubectl命令行工具、客户端SDK以及集群联邦; 生态系统:在接口层之上的庞大容器集群管理调度的生态系统,可以划分为两个范畴;
Kubernetes外部:日志、监控、配置管理、CI、CD、Workflow、FaaS、OTS应用、ChatOps等;
Kubernetes内部:CRI、CNI、CVI、镜像仓库、Cloud Provider、集群自身的配置和管理等。

二、Kubernetes部署

实验环境:server1中部署harbor仓库,server2做k8s集群的管理(注意k8s的管理端cpu要求大于等于2),server3和server4做k8s集群的node,新建server2/3/4.保持纯净

1.保证Harbor仓库正常开启

在这里插入图片描述

2.server1/2/3/4都安装docker

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.禁用swap分区

server2/3/4都要禁用swap分区
swapoff -a;
注释掉/etc/fstab文件中的swap启动路径
在这里插入图片描述

4.修改启动方式

修改daemon-json文件如下,server2/3/4设定docker cgroup driver为systemd;
重启服务,docker info 查看驱动改变即可
在这里插入图片描述

docker info 查看
在这里插入图片描述

将改好的daemon.json 文件传到server3/4
在这里插入图片描述

重启服务

4.安装部署软件kubeadm

将docker 的yum源发送至2,3,4

在这里插入图片描述

在这里插入图片描述

开启真机的路由,使得虚拟机能上网

查看默认配置信息
在这里插入图片描述

列出所需镜像
在这里插入图片描述

在harbor中创建k8s项目,专门放k8s的镜像
在这里插入图片描述

批量上传镜像到reg.westos.org/k8s
在这里插入图片描述

网上拉取flannel网络组件镜像,并修改标签,上传到reg.westos.org/library
在这里插入图片描述
修改 kube-flannel.yml中flannel的路径为刚才上传的仓库的路径名称
在这里插入图片描述
在这里插入图片描述

三、Kubernetes集群部署

初始化集群
–pod-network-cidr=10.244.0.0/16 :使用flannel网络组件时必须添加
–kubernetes-version :指定k8s安装版本
在这里插入图片描述

生成的kubeadm join 需要保存,server3/4用来加入集群
在这里插入图片描述

由于我们是root用户,所以选择按照提示配置环境变量,将k8s的指定配置文件写进环境变量.bash_profile中
配置kubectl命令补齐功能
成功后,命令行输入kubectl 然后tab可以补出命令

在这里插入图片描述

查看节点状态
在这里插入图片描述
server3/4上执行刚刚生成的kubeadm join ,加入集群
在这里插入图片描述

最后在master端查看节点状态,都是ready就代表部署成功
请添加图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值