CentOS7上手动部署入门级kubernetes

翻看了很多的kubernetes的安装教程,也反复做了一些实验,深感教程之复杂,所以决定写一个极简版本的安装教程,目标在于用尽可能少的参数启动服务,并且剖析各组件关系,然后再在此基础上逐步添加参数,实现功能完备;

干什么

在server节点上启动三个主要服务:apiserver、controller-manager、scheduler;

在node节点上启动两个主要服务:kubelet、kube-proxy;

试验启动容器,且测试容器内服务的功能;

不干什么

不通过软件源安装;

不添加systemd服务;

尽量不做安全配置;不做bootstrap流程,不用kubeadm创建集群;

不做高可用配置;

不用ipvs做负载均衡;

不装任何插件(dns, dashboard, etc);

说明:

如果通过软件源安装,看似会简化部署流程,但事实上会引入一些别的问题,因为一方面解决版本配套要添加合适的源比较麻烦,另一方面发布包在操作系统上做的一些配置也很复杂,为迎合它也需要做一些复杂的工作;(其实就是源里的东西版本低了不想用这种大实话我是绝对不会说的)

个人感觉安全配置是提高了kubernetes入门门槛的关键原因,本身安全认证授权就是非常复杂的机制,与业务独立,一般人较少接触,任何一个新入门kubernetes的人在瞎子摸象之前要先搞明白这些东西就要花很多功夫;
但是,非安全的服务端口正在被deperecate,看一下今年4月社区contributer的表态,自己感受一下吧,。
未来这一部分可能是造成本文失效的最主要原因; 

准备 架构概述

先大概知道一下架构,借用一张图,来源:https://www.kubernetes.org.cn/4047.html

CentOS7上手动部署入门级kubernetes

版本及依赖 etcd   3.3.8  
docker   18.03.1-ce  
flannel   0.10.0  
kubernetes   1.10.5  

etcd是一个基础组件,没有太复杂的依赖关系,没什么好说的;

docker见之前的docker安装流程;

flannel见之前的flannel安装流程;

下载程序包

到官方changelog里找downloads:https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.10.md

只下载server和node包就够了,client包只有一个kubectl工具,在前两个里都有带;

Server部署

server有三个组件,apiserver是接口服务,对接etcd,做存储逻辑的封装,后面跟着controller-manager和scheduler,做一些后台控制逻辑;

整个server做的事情全都围绕etcd转,所以根本不需要系统的root权限,普通用户足够;

安装server

解压server包,程序都解压到了kubernetes/server/bin路径:

$ tar vfxz kubernetes-server-linux-amd64.tar.gz # 解压 $ ls kubernetes/server/bin #看一下
$ cd kubernetes/server # 就在这个路径下做server服务的管理

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpxzxj.html