目录

  • 一、Kubernetes简介
  • 二、Kubernetes部署
  • 1.清理环境
  • 2.禁用swap分区
  • 3.修改驱动
  • 4.安装部署软件kubeadm
  • 三、Kubernetes集群部署


一、Kubernetes简介

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

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

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

传统集群部署和微服务部署的区别 集群部署的优势_kubernetes


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的分层架构

传统集群部署和微服务部署的区别 集群部署的优势_kubernetes_02

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/2/3/4都已安装docker,server1中部署harbor仓库,server2做k8s集群的管理(注意k8s的管理端虚拟机cpu要求大于等于2),server3和server4做k8s集群的node。

1.清理环境

关闭节点的selinux和iptables防火墙;
将server2,3,4清理即可,因为server1是harbor仓库端不用清理,首先将之前实验的docker缓存清理,
清理完后,重启服务,命令如下:

docker service ls
docker service rm xx
cd /etc/systemd/system/docker.service.d/
rm -f 10-machine.conf
docker network prune
docker volume prune
docker image prune
docker container prune
systemctl daemon-reload
systemctl restart docker

传统集群部署和微服务部署的区别 集群部署的优势_docker_03


将server2/3的docker缓存清理

传统集群部署和微服务部署的区别 集群部署的优势_重启_04


传统集群部署和微服务部署的区别 集群部署的优势_运维_05

2.禁用swap分区

server2/3/4都要禁用swap分区

swapoff -a;

注释掉/etc/fstab文件中的swap定义

传统集群部署和微服务部署的区别 集群部署的优势_docker_06

3.修改驱动

修改daemon-json文件如下,server2/3/4设定docker cgroup driver为systemd;

重启服务,docker info 查看驱动改变即可

传统集群部署和微服务部署的区别 集群部署的优势_docker_07


将改好的daemon.json 文件传到server3/4

传统集群部署和微服务部署的区别 集群部署的优势_传统集群部署和微服务部署的区别_08


重启服务

传统集群部署和微服务部署的区别 集群部署的优势_运维_09


传统集群部署和微服务部署的区别 集群部署的优势_传统集群部署和微服务部署的区别_10

4.安装部署软件kubeadm

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

传统集群部署和微服务部署的区别 集群部署的优势_docker_11


server2配置yum源

传统集群部署和微服务部署的区别 集群部署的优势_重启_12


server2对server3/4进行免密操作,便于后续操作

传统集群部署和微服务部署的区别 集群部署的优势_kubernetes_13


传统集群部署和微服务部署的区别 集群部署的优势_重启_14


server2将配好的yum源传给server3/4

传统集群部署和微服务部署的区别 集群部署的优势_重启_15


在server2/3/4上都需要下载kubelet kubeadm kubectl

传统集群部署和微服务部署的区别 集群部署的优势_运维_16


并设置服务开机自启

传统集群部署和微服务部署的区别 集群部署的优势_docker_17


查看默认配置信息

传统集群部署和微服务部署的区别 集群部署的优势_重启_18


列出所需镜像

传统集群部署和微服务部署的区别 集群部署的优势_传统集群部署和微服务部署的区别_19


在harbor中创建k8s项目,专门放k8s的镜像

传统集群部署和微服务部署的区别 集群部署的优势_传统集群部署和微服务部署的区别_20


网上下载速度慢,真机将k8s所需镜像传给server1

传统集群部署和微服务部署的区别 集群部署的优势_运维_21


server1导入镜像

传统集群部署和微服务部署的区别 集群部署的优势_重启_22


批量上传镜像到/k8s

传统集群部署和微服务部署的区别 集群部署的优势_kubernetes_23


传统集群部署和微服务部署的区别 集群部署的优势_运维_24


网上拉取flannel网络组件镜像,并修改标签,上传到/library

传统集群部署和微服务部署的区别 集群部署的优势_docker_25

三、Kubernetes集群部署

初始化集群

–pod-network-cidr=10.244.0.0/16 :使用flannel网络组件时必须添加

–kubernetes-version :指定k8s安装版本

传统集群部署和微服务部署的区别 集群部署的优势_docker_26


生成的kubeadm join 需要保存,server3/4用来加入集群

传统集群部署和微服务部署的区别 集群部署的优势_传统集群部署和微服务部署的区别_27


由于我们是root用户,所以选择按照提示配置环境变量,将k8s的指定配置文件写进环境变量.bash_profile中

传统集群部署和微服务部署的区别 集群部署的优势_重启_28


配置kubectl命令补齐功能

传统集群部署和微服务部署的区别 集群部署的优势_运维_29


成功后,命令行输入kubectl 然后tab可以补出命令

传统集群部署和微服务部署的区别 集群部署的优势_传统集群部署和微服务部署的区别_30


查看节点状态,可以看到有两个没开,是因为没有安装flannel网络组件

传统集群部署和微服务部署的区别 集群部署的优势_运维_31


下载flannel网络组件

传统集群部署和微服务部署的区别 集群部署的优势_kubernetes_32


kube-flannel.yml文件只需要修改镜像版本,镜像之前已经传入仓库

传统集群部署和微服务部署的区别 集群部署的优势_重启_33


将kube-flannel.yml文件中的配置应用到pod

传统集群部署和微服务部署的区别 集群部署的优势_重启_34


再次查看k8s的pod状态,都是running

传统集群部署和微服务部署的区别 集群部署的优势_运维_35


server3/4上执行刚刚生成的kubeadm join ,加入集群

传统集群部署和微服务部署的区别 集群部署的优势_kubernetes_36


传统集群部署和微服务部署的区别 集群部署的优势_kubernetes_37


最后在master端查看节点状态,都是ready就代表部署成功

传统集群部署和微服务部署的区别 集群部署的优势_docker_38