Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之自签TLS证书及Etcd集群部署(二)
0、前言
整体架构目录:ASP.NET Core分布式项目实战-目录
k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录
一、服务器设置
1、把每一个服务器的selinux 设置为 disabled
设置方式:
vi /etc/selinux/config
将 SELINUX=disabled,然后保存,然后 执行命令: setenforce 0,使之生效。
2、同步每一台服务器的时间(此步骤很重要,会影响后面的软件环境运行)
3、每一台服务器 关闭防火墙 firewall
二、安装docker
1、CentOS7 安装docker请参考之前文章:Docker系列之CentOS7安装Docker(一)
三、自签TLS证书
操作服务器:master1-151 服务器
1、安装证书生成工具cfssl:
执行命令:
wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64
注:如果上述命令无法再Centos7中执行,请用浏览器打开下载后上传到服务器上,然后在执行下面的命令
给cfssl加入可执行权限:
chmod +x cfssl_linux-amd64 cfssljson_linux-amd64 cfssl-certinfo_linux-amd64
然后把文件移动到此位置:
mv cfssl_linux-amd64 /usr/local/bin/cfssl
mv cfssljson_linux-amd64 /usr/local/bin/cfssljson
mv cfssl-certinfo_linux-amd64 /usr/local/bin/cfssl-certinfo
2、生成证书
k8s组件中证书使用情况

在服务器中创建一个文件夹,楼主我是在 mkdir /home/ssl 创建ssl文件,然后执行 证书 生成命令文件(此文件需要入QQ群找群主获取,QQ群号在下面)

注:在执行 文件中的 server-csr.json 时 需要把里面的IP地址修改完自己服务器的地址,如下图所示:

命令全部执行完后会生成如下的证书文件,后缀为 pem的证书文件。(此处仅看后缀为pem的文件,其他文件后面会将到)

到此步,证书生成OK了。
四、部署Etcd集群
操作服务器:master1-151 服务器
1、在此处我把 master1、node1、node2这个三个服务器做成etcd 集群部署。
2、首先先获取etcd 二进制 安装包:可以在 此链接处 下载 https://github.com/coreos/etcd/releases/tag/v3.2.12
3、把文件上传到 master 服务器上,群主创建了一个文件夹专门存放文件 如: mkdir /home/file
然后解压 包
tar xzvf 报名
解压后会得到 文件夹

4、在各个服务器上我统一创建了目录,用来存在 证书、可执行命令文件、配置文件,如下:
命令:mkdir /opt/kubernetes/{bin,cfg,ssl}
ssl:用来存放证书
bin:放执行文件
cfg:配置文件
5、把第三步解压出来的文件夹中的 etcd、etcdctl 复制到 /opt/kubernetes/bin 中。
6、在 cfg 文件夹中创建etcd的配置文件
命令: vi /ops/kubernetes/cfg/etcd ,然后把下面的内容复制进去,此处画红色圈的要特别注意,因为现在是在master1上面操作,因此 etcd_name 需要些 etcd01 与下面的cluster中的配对,IP地址要写master1的地址。如果是node节点则name需要修改对应的。

7、创建一个文件用来启动 etcd
vi /usr/lib/systemd/system/etcd.service
然后添加以下内容

8、把之前生成的证书复制到 /ops/kubernetes/ssl 中
cp server*pem ca*pem /opt/kubernetes/ssl
9、启动 etcd
systemctl start etcd
systemctl enable etcd
查看etcd 的状态:ps -ef |grep etcd
查看日志的命令:journalctl -u etcd
查看这个linux 信息(tail:命令-只查看文件末端内容) :tail /var/log/messages -f
10、然后node节点中也按上面配置。
全部配置完成后,我在master 服务器中把/ops/kubernetes/bin 添加到环境变量中的,因为后期需要经常使用此bin文件中的执行文件。
步骤一:在master上编辑 文件
vi /etc/profile
然后在文件中添加变量,然后保存
PATH=$PATH:/opt/kubernetes/bin
步骤二:source /etc/profile ,这样即可。
11、切换到 cd /home/ssl 文件中,执行以下命令,来检查etcd是否部署成功
命令:
/opt/kubernetes/bin/etcdctl --ca-file=ca.pem --cert-file=server.pem --key-file=server-key.pem --endpoints="https://192.168.161.151:2379,https://192.168.161.152:2379,https://192.168.161.153:2379" cluster-health
发现都启动成功。如果出现错误,请自行查看etcd 日志。如果在启动 etcd 时 发现 命令一直卡在那边,不用担心,etcd 已经启动,直接 按 ctrl+c 即可。查看etcd 的状态:ps -ef |grep etcd

12、此处已经把tls证书和etcd部署成功,下篇就将部署flanneld 网络
为什么需要部署flanneld呢?需要进行服务器互相通信,防止IP重复,导致冲突等。请听下回分解。
asp.net Core 交流群:787464275 欢迎加群交流
如果您认为这篇文章还不错或者有所收获,您可以点击右下角的【推荐】按钮精神支持,因为这种支持是我继续写作,分享的最大动力!
微信公众号:欢迎关注 QQ技术交流群: 欢迎加群

Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之自签TLS证书及Etcd集群部署(二)的更多相关文章
- 二进制搭建kubernetes多master集群【一、使用TLS证书搭建etcd集群】
上一篇我们介绍了kubernetes集群架构以及系统参数配置,参考:二进制搭建kubernetes多master集群[开篇.集群环境和功能介绍] 下面本文etcd集群才用三台centos7.5搭建完成 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录
0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.感谢 在此感谢.net ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之集群部署环境规划(一)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.环境规划 软件 版本 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之flanneld网络介绍及部署(三)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.flanneld介绍 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 1.部署master组件 ...
- Kubernetes 集群部署(1) -- 自签 TLS 证书
集群功能各模块功能描述: Master节点:主要由四个模块组成,APIServer,schedule, controller-manager, etcd APIServer: APIServer负责对 ...
- kubernetes容器集群自签TLS证书
集群部署 1.环境规划 2.安装docker 3.自签TLS证书 4.部署Flannel网络 5.部署Etcd集群 6.创建Node节点kubeconfig文件 7.获取K8S二进制包 8.运行Mas ...
- kubernetes(K8S)创建自签TLS证书
TLS证书用于进行通信使用,组件需要证书关系如下: 组件 需要使用的证书 etcd ca.pem server.pem server-key.pem flannel ca.pem server.pem ...
- 配置安全证书的Etcd集群
不知在哪篇技术文档中看到,kubernetes master和etcd分开部署模式,因为集群的状态都保存在etcd中,这样当kubernetes master挂掉后,通过API Server交互的Sc ...
随机推荐
- 你应该了解的强大CSS表达式 ----- expression
IE5及其以后版本支持在CSS中使用expression,用来把CSS属性和Javas cript表达式关联起来,这里的CSS属性可以是元素固有的属性,也可以是自定义属性.就是说CSS属性后面可以是一 ...
- Docker 启动Centos
docker run -d -e "container=docker" --privileged=true -v /sys/fs/cgroup:/sys/fs/cgroup --n ...
- Python概念-迭代器的__iter__和__next__
大家都知道__iter__是可迭代对象和迭代器的独有方法,也知道__next__是迭代器的 既然已经学了面向对象了,那么如何自己写一个: 代码示例: # 编辑者:闫龙 class Range: def ...
- php empty()与isset()
empty() : 检查一个变量是否为空. 判断一个变量是否被认为是空的.当一个变量并不存在,或者它的值等同于FALSE,那么它会被认为不存在.如果变量不存在的话,empty()并不会产生警告. em ...
- Entity Framework Context上下文管理(CallContext 数据槽)
Context上下文管理 Q1:脏数据 Q2:一次逻辑操作中,会多次访问数据库,增加了数据库服务器的压力 >在一次逻辑操作中实现上下文实例唯一 方法一:单例模式:内存的爆炸式增长 在整个运行期间 ...
- C/S模式和B/S模式
C/S模式和B/S模式 1.C/S模式(Client/Server,客户机/服务器模式) 如QQ 暴风影音,PPlive等应用软件都是C/S模式 是一种软件系统结构的一种,C/S模式是基于企业内部网络 ...
- 【四校联考】【比赛题解】FJ NOIP 四校联考 2017 Round 7
此次比赛为厦门一中出题.都是聚劳,不敢恭维. 莫名爆了个0,究其原因,竟然是快读炸了……很狗,很难受. 话不多说,来看看题: [T1] 题意: 样例: PS:1<=h[i]<=100000 ...
- C# 应用程序配置文件App.Config和web.config
应用程序配置文件,对于asp.net是 web.config,对于WINFORM程序是 App.Config(ExeName.exe.config). 配置文件,对于程序本身来说,就是基础和依据,其本 ...
- Pytorch自定义数据库
1)前言 虽然torchvision.datasets中已经封装了好多通用的数据集,但是我们在使用Pytorch做深度学习任务的时候,会面临着自定义数据库来满足自己的任务需要.如我们要训练一个人脸关键 ...
- window.onload绑定多个事件 —— 两种解决方案
前言 有些函数,必须在网页加载完毕后执行.比如:涉及DOM操作的. 网页加载完毕时会触发一个onload事件,将函数绑定到这个事件上即可. window.onload = myFunction; 问题 ...