K8S学习(二)实验之环境环境准备,证书创建和分发
文章目录1.实验环境2.环境初始化 a. 安装Docker第一步:修改Docker镜像源为国内的Docker源第二步:安装Docker第三步:启动Docker b. 准备K8S部署目录 c.准备软件K8S包 d.解压软件包 e.增加环境变量3.CA证书创建和分发 a.安装CFSSL b.创建用来生成CA文件的JSON配置文件 c.创建用来生成 CA 证书签名请求(CSR)的 JSO
·
文章目录
1.实验环境
主机环境:
- VMWare WorkStation 14 PRO
- CentOS-7-x86_64-Everything-1810
主机名 | IP地址 | 描述 |
---|---|---|
Linux-node1 | 192.168.219.135 | K8S Master节点 ETCD节点 |
Linux-node1 | 192.168.219.136 | K8S Node节点 ETCD节点 |
Linux-node1 | 192.168.219.137 | K8S Node节点 ETCD节点 |
2.环境初始化
(此处省略VMWare安装CentOS7步骤,请自行百度。)
a. 安装Docker
第一步:修改Docker镜像源为国内的Docker源
[root@linux-node1 ~]# cd /etc/yum.repos.d/
[root@linux-node1 yum.repos.d]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@linux-node2 ~]# cd /etc/yum.repos.d/
[root@linux-node2 yum.repos.d]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@linux-node3 ~]# cd /etc/yum.repos.d/
[root@linux-node3 yum.repos.d]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
第二步:安装Docker
[root@linux-node1 ~]# yum install -y docker-ce
[root@linux-node2 ~]# yum install -y docker-ce
[root@linux-node3 ~]# yum install -y docker-ce
第三步:启动Docker
[root@linux-node1 ~]# systemctl start docker
[root@linux-node2 ~]# systemctl start docker
[root@linux-node3 ~]# systemctl start docker
b. 准备K8S部署目录
[root@linux-node1 ~]# mkdir -p /opt/kubernetes/{cfg,bin,ssl,log}
[root@linux-node2 ~]# mkdir -p /opt/kubernetes/{cfg,bin,ssl,log}
[root@linux-node3 ~]# mkdir -p /opt/kubernetes/{cfg,bin,ssl,log}
c.准备软件K8S包
百度网盘 提取码:c1zg
下载并解压,将其中的kubernetes.tar.gz 、kubernetes-server-linux-amd64.tar.gz 、kubernetes-client-linux-amd64.tar.gz、kubernetes-node-linux-amd64.tar.gz
上传至三台主机的/usr/local/src目录下。
d.解压软件包
分别在三台主机中解压
[root@linux-node1 src]# tar zxf kubernetes.tar.gz
[root@linux-node1 src]# tar zxf kubernetes-server-linux-amd64.tar.gz
[root@linux-node1 src]# tar zxf kubernetes-client-linux-amd64.tar.gz
[root@linux-node1 src]# tar zxf kubernetes-node-linux-amd64.tar.gz
#解压的server、client、node都会解压到kubernetes目录下
[root@linux-node1 src]# cd kubernetes
[root@linux-node1 kubernetes]# ll
总用量 29536
drwxr-xr-x. 2 root root 6 4月 12 2018 addons
drwxr-xr-x. 3 root root 31 4月 12 2018 client
drwxr-xr-x. 13 root root 4096 4月 12 2018 cluster
drwxr-xr-x. 7 root root 131 4月 12 2018 docs
drwxr-xr-x. 34 root root 4096 4月 12 2018 examples
drwxr-xr-x. 3 root root 17 4月 12 2018 hack
-rw-r--r--. 1 root root 24710771 4月 12 2018 kubernetes-src.tar.gz
-rw-r--r--. 1 root root 5516760 4月 12 2018 LICENSES
drwxr-xr-x. 3 root root 17 4月 12 2018 node
-rw-r--r--. 1 root root 3329 4月 12 2018 README.md
drwxr-xr-x. 3 root root 66 4月 12 2018 server
drwxr-xr-x. 3 root root 22 4月 12 2018 third_party
-rw-r--r--. 1 root root 8 4月 12 2018 version
e.增加环境变量
分别在三台主机中增加环境变量
[root@linux-node1 ~]# vim .bash_profile
PATH=$PATH:$HOME/bin:/opt/kubernetes/bin
[root@linux-node1 ~]# source .bash_profile
[root@linux-node2 ~]# vim .bash_profile
PATH=$PATH:$HOME/bin:/opt/kubernetes/bin
[root@linux-node2 ~]# source .bash_profile
[root@linux-node3 ~]# vim .bash_profile
PATH=$PATH:$HOME/bin:/opt/kubernetes/bin
[root@linux-node3 ~]# source .bash_profile
3.CA证书创建和分发
从k8s的1.8版本开始,K8S系统各组件需要使用TLS证书对通信进行加密。每一个K8S集群都需要独立的CA证书体系。CA证书有以下三种:easyrsa、openssl、cfssl。这里使用cfssl证书,也是目前使用最多的,相对来说配置简单一些,通过json的格式,把证书相关的东西配置进去即可。这里使用cfssl的版本为1.2版本。
a.安装CFSSL
[root@linux-node1 ~]# cd /usr/local/src
[root@linux-node1 src]# wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
[root@linux-node1 src]# wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
[root@linux-node1 src]# wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64
[root@linux-node1 src]# chmod +x cfssl* #增加执行权限
[root@linux-node1 src]# mv cfssl-certinfo_linux-amd64 /opt/kubernetes/bin/cfssl-certinfo
[root@linux-node1 src]# mv cfssljson_linux-amd64 /opt/kubernetes/bin/cfssljson
[root@linux-node1 src]# mv cfssl_linux-amd64 /opt/kubernetes/bin/cfssl
复制cfssl命令文件到k8s-node1和k8s-node2节点。如果实际中多个节点,就都需要同步复制。
[root@linux-node1 ~]# ssh-copy-id linux-node1
[root@linux-node1 ~]# ssh-copy-id linux-node2
[root@linux-node1 ~]# ssh-copy-id linux-node3
[root@linux-node1 ~]# scp /opt/kubernetes/bin/cfssl* 192.168.219.136:/opt/kubernetes/bin
cfssl 100% 10MB 18.1MB/s 00:00
cfssl-certinfo 100% 6441KB 21.3MB/s 00:00
cfssljson 100% 2224KB 13.3MB/s 00:00
[root@linux-node1 ~]# scp /opt/kubernetes/bin/cfssl* 192.168.219.137:/opt/kubernetes/bin
cfssl 100% 10MB 22.5MB/s 00:00
cfssl-certinfo 100% 6441KB 40.7MB/s 00:00
cfssljson 100% 2224KB 43.1MB/s 00:00
b.创建用来生成CA文件的JSON配置文件
[root@linux-node1 src]# mkdir ssl && cd ssl #创建临时证书存放目录
[root@linux-node1 ssl]# pwd
/usr/local/src/ssl
[root@linux-node1 ssl]# vim ca-config.json
{
"signing": {
"default": {
"expiry": "8760h"
},
"profiles": {
"kubernetes": {
"usages": [
"signing",
"key encipherment",
"server auth",
"client auth"
],
"expiry": "8760h"
}
}
}
}
c.创建用来生成 CA 证书签名请求(CSR)的 JSON 配置文件
[root@linux-node1 ssl]# vim ca-csr.json
{
"CN": "kubernetes",
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "ShangHai",
"L": "ShangHai",
"O": "k8s",
"OU": "System"
}
]
}
d.生成CA证书(ca.pem)和密钥(ca-key.pem)
#生成证书和密钥
[root@linux-node1 ssl]# cfssl gencert -initca ca-csr.json | cfssljson -bare ca
[root@linux-node1 ssl]# ll
[root@linux-node1 ssl]# ll
总用量 28
-rw-r--r--. 1 root root 290 5月 7 16:55 ca-config.json
-rw-r--r--. 1 root root 1005 5月 7 16:55 ca.csr
-rw-------. 1 root root 1675 5月 7 16:55 ca-key.pem
-rw-r--r--. 1 root root 1363 5月 7 16:55 ca.pem
-rw-r--r--. 1 root root 301 5月 7 17:35 etcd-csr.json
-rw-------. 1 root root 1675 5月 8 09:45 etcd-key.pem
-rw-r--r--. 1 root root 1440 5月 8 09:45 etcd.pem
e.分发证书
[root@linux-node1 ssl]# cp ca.csr ca.pem ca-key.pem ca-config.json /opt/kubernetes/ssl
#SCP证书到k8s-node1和k8s-node2节点,以后增加节点也是需要将这些证书进行分发
[root@linux-node1 ssl]# scp ca.csr ca.pem ca-key.pem ca-config.json 192.168.219.136:/opt/kubernetes/ssl
ca.csr 100% 1001 350.2KB/s 00:00
ca.pem 100% 1359 891.4KB/s 00:00
ca-key.pem 100% 1675 1.0MB/s 00:00
ca-config.json 100% 290 180.7KB/s 00:00
[root@linux-node1 ssl]# scp ca.csr ca.pem ca-key.pem ca-config.json 192.168.219.137:/opt/kubernetes/ssl
ca.csr 100% 1001 350.2KB/s 00:00
ca.pem 100% 1359 891.4KB/s 00:00
ca-key.pem 100% 1675 1.0MB/s 00:00
ca-config.json 100% 290 180.7KB/s 00:00
参考:《每天5分钟玩转Kubernetes》、https://www.cnblogs.com/linuxk/
更多推荐
已为社区贡献4条内容
所有评论(0)