kubernetes单节点部署ETCD的教程

  

这篇文章给大家分享的是kubernetes单节点部署ETCD的教程。小编觉得挺实用的,因此分享给大家学习。如下资料是关于的内容。

软件采用版本

软件名称版Linux本系统的Linux版本4.8.5Kubernetes1.9DockerDocker 19.03.5Etcdv3.3.10

服务器角色分配

角色地址安装组件master192.168.142.220kube-apiserver kube-controller-manager kube-scheduler etcdnode1192.168.142.136kubelet kube-proxy码头工人法兰绒etcdnode2192.168.142.132kubelet kube-proxy码头工人法兰绒ETCD

前期注意

所有实验虚拟机均已关闭selinux核心防护功能

建立工作目录用于存放二进制软件包

 <代码类="语言java "> root@master ~ # cd/[root@master/] # mkdir k8  
<人力资源/>

安装ETCD数据库(三节点备份)

主端方面

<人力资源/>

下载ca证书创建、管理工具cfssl

 <代码类="语言java "> [root@master k8] # curl https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 - l - o/usr/local/bin/cfssl
  [root@master k8] # curl https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 - l - o/usr/local/bin/cfssljson
  [root@master k8] # curl https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 - l - o/usr/local/bin/cfssl-certinfo
  [root@master k8] # chmod + x/usr/local/bin/cfssl/usr/local/bin/cfssljson/usr/local/bin/cfssl-certinfo  

生成ca证书

 <=坝镅詊ava代码类>//定义ca证书,生成ca证书配置文件
  [root@master k8] #猫比;ca-config。json & lt; & lt; EOF
  {
  ,“signing": {
  ,,“default": {
  ,,,“expiry":“87600 h"
  ,},
  ,,“profiles": {
  ,,,“www": {
  ,,,,“expiry":“87600 h"
  ,,,,“usages":(
  ,,,,,,“signing",
  ,,,,,,“关键encipherment"
  ,,,,,,“服务器auth",
  ,,,,,,“端auth"
  ,,,,)
  ,,,}
  ,,}
  ,}
  }
  EOF//生成证书签名文件
  [root@master k8] #猫比;ca-csr。json & lt; & lt; EOF
  {
  ,,“CN":“etcd CA",
  ,,“key": {
  ,,,,“algo":“rsa"
  ,,,,“size": 2048
  ,},
  ,,“names":(
  ,,,,{
  ,,,,,,“C":“CN"
  ,,,,,,“L":“Beijing"
  ,,,,,,“ST":“Beijing"
  ,,,,}
  ,,)
  }
  EOF//生成ca证书、ca.pem ca-key.pem
  [root@master k8] # cfssl gencert -initca ca-csr。json | cfssljson光秃秃的ca -
  
  [root@master k8] # ls
  ca-config。json ca-csr。json, ca。pem,ca.csr,,ca-key。pem,
  “ca。pem”,,,,//ca证书文件
  “ca-key。pem”,,,,//ca密钥证书文件 

生成etcd各节点之间通信证书

(注意IP地址的变化)

 <=坝镅詊ava代码类>//生成etcd节点之间的通信验证签名//节点地址必须要更改
  [root@master k8] #猫比;server-csr。json & lt; & lt; EOF
  {
  ,,“CN":“etcd"
  ,,“hosts":(
  ,,“192.168.142.220",
  ,,“192.168.142.136",
  ,,“192.168.142.132"
  ,,),
  ,,“key": {
  ,,,,“algo":“rsa"
  ,,,,“size": 2048
  ,},
  ,,“names":(
  ,,,,{
  ,,,,,,“C":“CN"
  ,,,,,,“L":“BeiJing"
  ,,,,,,“ST":“BeiJing"
  ,,,,}
  ,,)
  }
  EOF//生成ETCD通信证书,用于ETCD之间通信验证
  [root@master k8] # cfssl gencert ca=ca。pem -ca-key=ca-key。pem配置=ca-config。json文件=www server-csr。json | cfssljson光秃秃的服务器
  
  [root@master k8] # ls
  ca-config。json ca-csr。json, ca。pem,,,服务器。企业社会责任,,,server-key.pem
  ca.csr,,,,ca-key。pem,etcd-cert。sh server-csr。json, server.pem
  “server.pem”和“服务器密钥。pem”,,,//etcd之间通信的验证证书 

配置etcd二进制文件包

 <=坝镅詊ava代码类>//解压安装etcd
  [root@master k8] #焦油zxf etcd-v3.3.10-linux-amd64.tar.gz//建立存放etcd配置文件,命令,证书的目录
  [root@master k8] # mkdir - p/opt/etcd/{cfg,本,ssl}
  [root@master k8] # ls/opt/etcd/本,cfg ssl//将etcd中的文件分门别类存放
  [root@master k8] # mv etcd-v3.3.10-linux-amd64/etcd/opt/etcd/bin/[root@master k8] # mv etcd-v3.3.10-linux-amd64/etcdctl/opt/etcd/bin/[root@master k8] # cp - p *。pem/opt/etcd/ssl///etcd命令文件
  [root@master k8] # ls/opt/etcd/bin/etcd, etcdctl//etcd证书
  [root@master k8] # ls/opt/etcd/ssl/ca-key。pem ca。pem服务器密钥。pem,服务器。pem  

建立etcd配置文件

 <代码类="语言java "> [root@master k8] #猫& lt; & lt; EOF祝辞/opt/etcd/cfg/etcd//(成员)
  ETCD_NAME=癳tcd01"
  ETCD_DATA_DIR=?var/lib/etcd/default.etcd"
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null

kubernetes单节点部署ETCD的教程