二进制部署Kubernetes v1.11.x(1.12.x) HA可选

 

  转自: https://zhangguanzhang.github.io/2018/09/18/kubernetes-1-11-x-bin/

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…

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-系统配置