etcd 3.1 高可用集群搭建

CentOS 7.4

TLS密钥和证书 这里部署的etcd集群使用TLS证书对证书通信进行加密,并开启基于CA根证书签名的双向数字证书认证。 下面介绍使用cfssl生成所需要的私钥和证书. centos-mini版本的linux需要安装开发包: yum groupinstall “Development Tools” 安装cfssl cfssl是使用Go语言开发的工具,如果系统中安装了Go,可以使用直接go get安装cfssl: 项目地址:https://github.com/cloudflare/cfssl

会在$GOPATH/bin下安装cfssl, cfssjosn, mkbundle等工具。 CA证书和私钥 创建ca-config.json:

ca-config.json中可以定义多个profile,分别设置不同的expiry和usages等参数。如上面的ca-config.json中定义了名称为frognew的profile,这个profile的expiry 87600h为10年,useages中: signing表示此CA证书可以用于签名其他证书,ca.pem中的CA=TRUE server auth表示TLS Server Authentication client auth表示TLS Client Authentication 创建CA证书签名请求配置ca-csr.json:

下面使用cfss生成CA证书和私钥:

ca-key.pem和ca.pem需要保存在一个安全的地方,后边会用到。 etcd证书和私钥 创建etcd证书签名请求配置etcd-csr.json:

注意上面配置hosts字段中制定授权使用该证书的IP和域名列表,因为现在要生成的证书需要被etcd集群各个节点使用,所以这里指定了各个节点的IP和hostname。 下面生成etcd的证书和私钥:

对生成的证书可以使用cfssl或openssl查看:

安装etcd 将CA证书ca.pem, etcd秘钥etcd-key.pem, Read more…

Linux(centos 7.4)下部署Golang运行环境

导读 Go 语言又称为 golang, 是由 Google 最初开发的一种开源编程语言,其在设计时就遵循了简单、安全和速度的 3 大原则。Go 语言具有多种调试、测试、分析和代码审查工具,如今 Go 语言和工具已在大多数 Linux 发行版本的源库中进行提供,本文我就来说明如何为 Linux 安装 Go 语言。 安装 首先查看centos是64位还是32位,显示是64就是64位:

然后下载go-linux-64位源码包,手动wget安装,不推荐yum安装(现在最新版都1.9了,yum仓库最新版本才1.8)。

解压二进制文件到 /usr/local 目录

使用 vi 在环境变量配置文件  /etc/profile 中增加如下内容:

进去添加:

使profile配置立即生效:

查看Go版本或者环境变量

完成。可以看到GOPATH目录为 /home/golang/。

k8s集群搭建

我们已经可以很方便的使用kubeadm快速初始化Kubernetes集群,但kubeadm当前还不能用于生产环境,同时kubeadm初始化的集群的Master节点不是高可用的,后端存储etcd也是单点。因此,本文将基于Kubernetes二进制包手动部署一个高可用的Kubernetes 1.6集群,将启用ApiServer的TLS双向认证和RBAC授权等安全机制。 通过这个手动部署的过程,我们还可以更加深入理解Kubernetes各组件的交互和运行原理。 1. 环境准备 1.1 系统环境 操作系统CentOS 7.3

1.2 安装包下载 从这里下载kubernetes二进制安装包:

1.3 系统配置 在各节点创建/etc/sysctl.d/k8s.conf文件,添加如下内容:

执行sysctl -p /etc/sysctl.d/k8s.conf使修改生效。 如果报以下错:

解决办法:

禁用selinux:

参考: https://blog.frognew.com/2017/04/install-ha-kubernetes-1.6-cluster.html#13-系统配置