kubernetes之安装部署(二进制包方式)
- 一、安装部署简介
- 二、kubernetes(二进制包方式)安装部署
- 1.部署etcd集群
- 1.1 生成etcd证书
- 1.2下载/解压etcd二进制包
- 1.3 创建etcd配置文件
- 1.4 systemd管理etcd,创建etcd服务文件
- 1.5 启动并设置开启启动etcd服务
- 1.6 验证etcd部署成功
- 2.安装Docker
- 3.部署Flannel网络
- 3.1etcd写入预定义子网段
- 3.2下载/解压flannel二进制包
- 3.3配置Flannel
- 3.4systemd管理Flannel,创建flannel服务
- 3.5配置Docker启动指定子网段,重新创建docker.service
- 3.6重启flannel和docker
- 3.7验证flannel和docker是否生效
- 4.安装部署kubernetes
- 4.1生成证书
- 4.2下载/解压kubernetes二进制包
- 4.3master节点部署apiserver
- 4.4master节点部署schduler
- 4.5master节点部署controller-manager
- 4.6查看当前集群组件状态
- 5.在master节点上绑定系统集群角色
- 5.1将kubelet-bootstrap用户绑定到系统集群角色
- 5.2创建kubeconfig文件
- 6.把master节点作为node添加进来
- 6.1.master节点上部署kubelet组件
- 6.2master节点上部署kube-proxy
- 7.创建一个Nginx Web,判断集群是否正常工作
本次采用二进制包方式安装部署kubernetes,其必须的组件有等组件。
- 操作系统:centos7.5
- 机器1台:172.27.19.143(即作master也作为node节点)
- etcd文件目录结构
/opt
├ ─ ─ etcd
├ ─ ─ bin(存放etcd相关可执行文件或命令,如etcd、etcdctl)
├ ─ ─ cfg(存放etcd相关配置文件,如etcd.conf配置文件)
├ ─ ─ ssl(存放etcd证书相关文件,如*.pem文件)
├ ─ ─ logs(存放etcd服务日志文件)
├ ─ ─ data(存放etcd相关数据文件) - kubernetes文件目录结构
/opt
├ ─ ─ kubernetes
├ ─ ─ bin(存放kubernetes相关可执行文件或命令,如kube-apiserver、kubelet、kubectl等等)
├ ─ ─ cfg(存放kubernetes相关配置文件)
├ ─ ─ ssl(存放kubernetes证书相关文件,如*.pem文件)
├ ─ ─ logs(存放kubernetes服务日志文件)
├ ─ ─ data(存放kubernetes相关数据文件) - 前期准备
1.关闭防火墙、关闭selinux、关闭swapoff -a;
2.下载cfssl工具 - kubernetes环境安装部署流程
一、部署etcd集群
├ ─ ─ 1.生成etcd证书
├ ─ ─ 1.1创建CA证书配置ca-config.json
├ ─ ─ 1.2创建CA证书签名请求配置ca-csr.json
├ ─ ─ 1.3创建etcd证书签名请求配置server-csr.json
├ ─ ─ 1.4执行cfssl命令生成证书
├ ─ ─ 1.5把生成的证书放到/opt/etcd/ssl目录下
├ ─ ─ 2.下载/解压etcd二进制包
├ ─ ─ 3.创建etcd配置文件
├ ─ ─ 4.systemd管理etcd,创建etcd服务文件
├ ─ ─ 5.启动并设置开启启动etcd服务
├ ─ ─ 6.验证etcd部署成功
二、安装Docker
三、部署Flannel网络
├ ─ ─ 1.Flannel要用etcd存储自身一个子网信息,写入预定义子网段
├ ─ ─ 2.下载/解压flannel二进制包
├ ─ ─ 3.配置Flannel
├ ─ ─ 4.systemd管理Flannel,创建flannel服务
├ ─ ─ 5.配置Docker启动指定子网段,重新创建docker.service
├ ─ ─ 6.重启flannel和docker
├ ─ ─ 7.验证flannel和docker是否生效
四、安装部署kubernetes(在master节点上部署apiserver、scheduler、controller-manager组件)
├ ─ ─ 1.生成证书
├ ─ ─ 1.1 创建CA证书配置ca-config.json
├ ─ ─ 1.2 创建CA证书签名请求配置ca-csr.json
├ ─ ─ 1.3 创建kubernetes证书签名请求配置server-csr.json
├ ─ ─ 1.4 创建kube-proxy证书签名请求配置kube-proxy-csr.json
├ ─ ─ 1.5 执行cfssl命令生成证书
├ ─ ─ 1.6 把生成的证书放到/opt/kubernetes/ssl目录下
├ ─ ─ 2.下载/解压kubernetes二进制包
├ ─ ─ 3.master节点部署apiserver
├ ─ ─ 3.1 创建token文件token.csv
├ ─ ─ 3.2 创建apiserver配置文件kube-apiserver.conf
├ ─ ─ 3.3 systemd管理apiserver,创建kube-apiserver服务
├ ─ ─ 3.4 启动kube-apiserver服务
├ ─ ─ 3.5 验证kube-apiserver服务是否启动成功
├ ─ ─ 4.master节点部署schduler.conf
├ ─ ─ 4.1 创建schduler配置文件kube-scheduler
├ ─ ─ 4.2 systemd管理schduler,创建kube-scheduler服务
├ ─ ─ 4.3 启动kube-scheduler服务
├ ─ ─ 4.4 验证kube-scheduler服务是否启动成功
├ ─ ─ 5.master节点部署controller-manager
├ ─ ─ 5.1 创建controller-manager配置文件kube-controller-manager.conf
├ ─ ─ 5.2 systemd管理controller-manager,创建kube-controller-manager服务
├ ─ ─ 5.3 启动kube-controller-manager服务
├ ─ ─ 5.4 验证kube-controller-manager服务是否启动成功
├ ─ ─ 6.所有组件都启动成功后,通过kubectl工具查看当前集群组件状态
五、在master节点上绑定系统集群角色
├ ─ ─ 1.将kubelet-bootstrap用户绑定到系统集群角色
├ ─ ─ 2.创建kubeconfig文件
六、把master节点作为node添加进来(部署kubelet、kube-proxy组件)
├ ─ ─ 1.master节点上部署kubelet组件
├ ─ ─ 1.1 创建kubelet配置文件kubelet.conf
├ ─ ─ 1.2 systemd管理kubelet,创建kubelet服务
├ ─ ─ 1.3 启动kubelet服务
├ ─ ─ 1.4 验证kubelet服务是否启动成功
├ ─ ─ 1.5 在Master审批Node加入集群
├ ─ ─ 1.6 给master节点添加roles,以便跟node区分(一般不用于调度pod)
├ ─ ─ 2.master节点上部署kube-proxy
├ ─ ─ 2.1 创建kube-proxy kubeconfig文件
├ ─ ─ 2.2 创建kube-proxy配置文件kube-proxy.conf
├ ─ ─ 2.3 systemd管理kube-proxy,创建kube-proxy服务
├ ─ ─ 2.4 启动kube-proxy服务
├ ─ ─ 2.5 验证kube-proxy服务是否启动成功
七、创建一个Nginx Web,判断集群是否正常工作
- 提前关闭防火墙、关闭selinux、关闭swapoff -a
- 提前下载cfssl工具
- 创建etcd存放相关数据的目录
1.1 生成etcd证书
- 创建CA证书配置ca-config.json
知识点:
:表示过期时间,如果不写以default中的为准;
:可以定义多个 profiles,分别指定不同的过期时间、使用场景等参数;后续在签名证书时使用某个 profile;此实例只有一个etcd模板。
:表示该证书可用于签名其它证书;生成的 ca.pem 证书中 CA=TRUE;
:表示client可以用该 CA 对server提供的证书进行验证;
:表示server可以用该CA对client提供的证书进行验证;
注意标点符号,最后一个字段一般是没有都好的。
- 创建CA证书签名请求配置ca-csr.json
知识点:
:Common Name,kube-apiserver 从证书中提取该字段作为请求的用户名 (User Name)
:生成证书的算法;
:一些其它的属性,如、、分别代表国家、省份、城市;而:Organization,kube-apiserver 从证书中提取该字段作为请求用户所属的组 (Group),进行RBAC绑定;
- 创建etcd证书签名请求配置server-csr.json
- 执行cfssl命令生成证书
知识点:cfssljson只是整理json格式,-bare主要的意义在于生成证书文件的命名
- 把生成的证书放到/opt/etcd/ssl目录下
1.2下载/解压etcd二进制包
1.3 创建etcd配置文件
注意:ETCD_DATA_DIR的路径需要提前创建,否则可能会报错;
1.4 systemd管理etcd,创建etcd服务文件
1.5 启动并设置开启启动etcd服务
1.6 验证etcd部署成功
- 直接通过yum源安装docker
- 配置yun源后再安装docker
- 本地rpm包安装
3.1etcd写入预定义子网段
3.2下载/解压flannel二进制包
3.3配置Flannel
3.4systemd管理Flannel,创建flannel服务
3.5配置Docker启动指定子网段,重新创建docker.service
3.6重启flannel和docker
3.7验证flannel和docker是否生效
- 创建kubernetes存放相关数据的目录
4.1生成证书
- 创建CA证书配置ca-config.json
- 创建CA证书签名请求配置ca-csr.json
- 创建kubernetes证书签名请求配置server-csr.json
- 创建kube-proxy证书签名请求配置kube-proxy-csr.json
- 执行cfssl命令生成证书
- 把生成的证书放到/opt/kubernetes/ssl目录下
4.2下载/解压kubernetes二进制包
4.3master节点部署apiserver
- 创建token文件token.csv
- 创建apiserver配置文件kube-apiserver.conf
- systemd管理apiserver,创建kube-apiserver服务
- 启动kube-apiserver服务
- 验证kube-apiserver服务是否启动成功
4.4master节点部署schduler
- 创建schduler配置文件kube-scheduler.conf
- systemd管理schduler,创建kube-scheduler服务
- 启动kube-scheduler服务
- 验证kube-scheduler服务是否启动成功
4.5master节点部署controller-manager
- 创建controller-manager配置文件kube-controller-manager.conf
- systemd管理controller-manager,创建kube-controller-manager服务
- 启动kube-controller-manager服务
- 验证kube-controller-manager服务是否启动成功
4.6查看当前集群组件状态
5.1将kubelet-bootstrap用户绑定到系统集群角色
5.2创建kubeconfig文件
node节点添加进集群其配置基本组件为就可以了,但是node节点主要用来调度Pod,若其service服务需要提供clusterip或nodeport访问方式,还需要部署组件。
6.1.master节点上部署kubelet组件
- 创建kubelet配置文件kubelet.conf
- systemd管理kubelet,创建kubelet服务
- 启动kubelet服务
- 验证kubelet服务是否启动成功
- 在Master审批Node加入集群
- 给master节点添加roles,以便跟node区分(一般不用于调度pod)
6.2master节点上部署kube-proxy
- 创建kube-proxy kubeconfig文件
- 创建kube-proxy配置文件kube-proxy.conf
- systemd管理kube-proxy,创建kube-proxy服务
- 启动kube-proxy服务
- 验证kube-proxy服务是否启动成功
- 创建一个Nginx Web
- 查看Pod,Service
- 访问nginx服务
到此这篇kubelet二进制文件(kubernetes二进制安装部署)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!注意: 在pod所在机器172.27.19.143上直接通过curl 127.0.0.1:35419或curl localhost:35419访问不通可能是哪里少了配置。
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/do-docker-k8s/37329.html