K8S 集群中所有资源的访问和变更都是通过 kube-apiserver 的 REST API 来实现的,首先在 master 节点上部署 kube-apiserver 组件。
我们首先为 apiserver 签发一套SSL证书,过程与 etcd 自签SSL证书类似。通过如下命令创建几个目录,ssl 用于存放自签证书,cfg 用于存放配置文件,bin 用于存放执行程序,logs 存放日志文件。
bashcd /
mkdir -p /k8s/kubernetes/{ssl,cfg,bin,logs}
cd /k8s/kubernetes/ssl
① 创建 CA 配置文件:ca-config.json
bashcat > ca-config.json <<EOF
{
"signing": {
"default": {
"expiry": "87600h"
},
"profiles": {
"kubernetes": {
"usages": [
"signing",
"key encipherment",
"server auth",
"client auth"
],
"expiry": "87600h"
}
}
}
}
EOF
本记录参考自 Kubernetes 深入学习(一) —— 入门和集群安装部署
主要参考的这一篇,是根据这一篇部署过程中的捉虫和报错处理
etcd是使用Go语言开发的一个开源的、高可用的分布式key-value存储系统,可以用于配置共享和服务的注册和发现。一般使用奇数个节点构成集群。
为了加强集群安全性这里使用CA自签证书来进行互相认证
① 准备 cfssl 工具
bashcurl -L https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -o /usr/local/bin/cfssl
curl -L https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 -o /usr/local/bin/cfssljson
curl -L https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 -o /usr/local/bin/cfssl-certinfo
chmod +x /usr/local/bin/cfssl*
② 自签名
我们首先为 etcd 签发一套SSL证书
bashcd /
mkdir -p /k8s/etcd/{ssl,cfg,bin}
#/k8s/etcd/ssl 用于存放 etcd 自签证书,/k8s/etcd/cfg 用于存放 etcd 配置文件,/k8s/etcd/bin 用于存放 etcd 执行程序。
mkdir -p /k8s/data/default.etcd
#/k8s/data 用于存放数据文件
cd /k8s/etcd/ssl # 进入ssl目录
jenkins和jira绑定的一个ldap服务做账号认证,暂不明为什么jira创建账号后不生成posixAccount字段