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 欢迎加群交流
如果您认为这篇文章还不错或者有所收获,您可以点击右下角的【推荐】按钮精神支持,因为这种支持是我继续写作,分享的最大动力!

作者:LouieGuo
声明:原创博客请在转载时保留原文链接或者在文章开头加上本人博客地址,如发现错误,欢迎批评指正。凡是转载于本人的文章,不能设置打赏功能,如有特殊需求请与本人联系!

微信公众号:欢迎关注                                                 QQ技术交流群: 欢迎加群

                

Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之自签TLS证书及Etcd集群部署(二)的更多相关文章

  1. 二进制搭建kubernetes多master集群【一、使用TLS证书搭建etcd集群】

    上一篇我们介绍了kubernetes集群架构以及系统参数配置,参考:二进制搭建kubernetes多master集群[开篇.集群环境和功能介绍] 下面本文etcd集群才用三台centos7.5搭建完成 ...

  2. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录

    0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.感谢 在此感谢.net ...

  3. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之集群部署环境规划(一)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.环境规划 软件 版本 ...

  4. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之flanneld网络介绍及部署(三)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.flanneld介绍 ...

  5. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 1.部署master组件 ...

  6. Kubernetes 集群部署(1) -- 自签 TLS 证书

    集群功能各模块功能描述: Master节点:主要由四个模块组成,APIServer,schedule, controller-manager, etcd APIServer: APIServer负责对 ...

  7. kubernetes容器集群自签TLS证书

    集群部署 1.环境规划 2.安装docker 3.自签TLS证书 4.部署Flannel网络 5.部署Etcd集群 6.创建Node节点kubeconfig文件 7.获取K8S二进制包 8.运行Mas ...

  8. kubernetes(K8S)创建自签TLS证书

    TLS证书用于进行通信使用,组件需要证书关系如下: 组件 需要使用的证书 etcd ca.pem server.pem server-key.pem flannel ca.pem server.pem ...

  9. 配置安全证书的Etcd集群

    不知在哪篇技术文档中看到,kubernetes master和etcd分开部署模式,因为集群的状态都保存在etcd中,这样当kubernetes master挂掉后,通过API Server交互的Sc ...

随机推荐

  1. 20155234 2016-2017-2 《Java程序设计》第5周学习总结

    20155234 2016-2017-2 <Java程序设计>第5周学习总结 教材学习内容总结 Java中所有错误都会被打包为对象,运用try.catch,可以在错误发生时显示友好的错误信 ...

  2. 基本控件文档-UILabel属性

    CHENYILONG Blog 基本控件文档-UILabel属性 Fullscreen UILabel属性技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http ...

  3. HDU 4720 Naive and Silly Muggles 平面几何

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4720 解题报告:给出一个三角形的三个顶点坐标,要求用一个最小的圆将这个三个点都包含在内,另外输入一个点 ...

  4. 【译】第八篇 Integration Services:高级工作流管理

    本篇文章是Integration Services系列的第八篇,详细内容请参考原文. 简介在前面两篇文章,我们创建了一个新的SSIS包,学习了SSIS中的脚本任务和优先约束,并检查包的MaxConcu ...

  5. oracle关键字作为字段名使用方法

    有时我们在定义字段名及别名时所用名与oracle关键字同名,这时该如何处理呢? 其实很简单,只要在此关键字加上"",如"group" SQL> DROP ...

  6. 冲量:momentum

    参见:http://www.jianshu.com/p/58b3fe300ecb,这个博客里有冲量的python实现的代码和讲解 “冲量”这个概念源自于物理中的力学,表示力对时间的积累效应. 在普通的 ...

  7. python3之pymysql模块

    1.python3 MySQL数据库链接模块 PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb. PyMySQL 遵循 Pyt ...

  8. flask插件系列之flask_uploads上传文件

    前言 flask可以实现上传文件和下载文件的基本功能,但如果想要健壮的功能,使用flask_uploads插件是十分方便的. 安装 pip install flask_uploads 基本使用 # e ...

  9. shell脚本实现监控shell脚本的执行流程及变量的值

    这篇文章主要介绍了shell脚本实现监控shell脚本的执行流程及变量的值本文使用shell完成对执行过程中条件语句中的变量的变化的监控和整个程序的执行流程的观察功能,需要的朋友可以参考下 很多时候, ...

  10. numpy细碎知识点

    np.random.rand() 基于python自带模块random的random函数的一个延伸吧,生成指定数量的列表 np.random.rand(a,b) 参数a,b均为整型,生成含有a个元素的 ...