Kubernetes群集之:二进制部署单etcd,多节点集群

  

Kubernetes集群部署

  
  

1。官方提供的三种部署方式
2. kubernetes平台环境规划
3。自签SSL证书
4。Etcd数据库群集部署
5.节点安装码头工人
6.法兰绒容器集群网络部署
7。部署大师组件
8。部署节点组件
9。部署一个测试示例
10。部署Web UI(仪表板)
11。部署集群内部DNS解析服务(CoreDNS)

     

官方提供的三种部署方式:

  
minikube:
  

Minikube是一个工具,可以在本地快速运行单点的Kubernetes,仅用于尝试Kubernetes或日常开发的用户使用
<代码>部署地址:https://kubernetes.io/docs/setup/minikube/

  
kubeadm:
  

Kubeadm也是一个工具,提供Kubeadm init和Kubeadm加入,用于快速部署Kubernetes集群
<代码>部署地址:https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/

  
二进制包:
  

推荐,从官方下载发行版的二进制包,手动部署每个组件包,组成Kubernetes集群
<代码>下载地址:https://github.com/kubernetes/kubernetes/releases

  <人力资源/>   

要解决服务发现的问题,需要下面三大支柱,缺一不可

  <编辑> 1。一个强一致性,高可用的服务存储目录   

<代码>基于拉尔夫算法的etcd天生就是这样一个强一致性,高可用的服务存储目录

  <编辑> 2。一秒注册服务和健康服务健康状况的机制   

<代码>用户可以在etcdz中注册服务,并且对注册的服务配置关键TTL、定时保持服务的心跳以达到监控健康状态的效果

  <编辑> 3。一种查找和连接服务的机制   

<代码>通过在etcd指定的主题下注册的服务业能在对应的主题下查到,为了确保连接,我们可以在每个服务机器上都部署一个代理模式的etcd,这样就可以确保访问etcd集群的服务都能够互相连接

  <人力资源/>   <人力资源/>   

演示:二进制部署多节点,单etcd群集

  

 Kubernetes群集之:二进制部署单etcd,多节点集群

  

环境准备:

  <编辑>相关软件包及文档:   

<代码>链接:https://pan.baidu.com/s/1nn67GDs8BD6sQTeKH4Ii4w
<代码>提取码:vx7m

  
  

<强>老爷:7-3:192.168.18.128 kube-apiserver kube-controller-manager kube-scheduler etcd

  

<强> Node1:7-4:192.168.18.148 kubelet kube-proxy docekr法兰绒etcd

  

<强> Node2:7-5:192.168.18.145 kubelet kube-proxy docekr法兰绒etcd

     
Mester7-3:
  
 <代码类=" language-bash "> root@master ~ # mkdir美丽
  root@master ~ # cd k8/[root@master k8] # mkdir etcd-cert
  [root@master k8] # mv etcd-cert。sh etcd-cert
  [root@master k8] # ls
  etcd-cert etcd.sh
  [root@master k8] # vim cfssl.sh
  curl https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 - l - o/usr/local/bin/cfssl
  curl https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 - l - o/usr/local/bin/cfssljson
  curl https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 - l - o/usr/local/bin/cfssl-certinfo
  chmod + x/usr/local/bin/cfssl/usr/local/bin/cfssljson/usr/local/bin/cfssl-certinfo
  [root@master k8] # bash cfssl.sh
  [root@master k8] # ls/usr/local/bin/cfssl cfssl-certinfo cfssljson
  
  “定义CA证书”
  猫在ca-config。json & lt; & lt; EOF
  {
  “签署”:{
  “默认”:{
  “到期”:“87600 h”
  },
  “简介”:{
  “www”: {
  “到期”:“87600 h”,
  “用法”:(
  “签名”,
  “关键加密”,
  “服务器身份验证”,
  “客户端身份验证”
  ]
  }
  }
  }
  }
  EOF
  
  “实证书签名”
  猫在ca-csr。json & lt; & lt; EOF
  {
  “CN”:“etcd CA”,
  “关键”:{
  “算法”:“rsa”,
  “大小”:2048
  },
  “名称”:[
  {
  “C”:“CN”,
  “L”:“南京”,
  “圣”:“南京”
  }
  ]
  }
  EOF
  
  “生产证书,生成ca-key。pem ca.pem”
  [root@master k8] # cd etcd-cert/[root@master etcd-cert] # cfssl gencert -initca ca-csr。json | cfssljson光秃秃的ca -
  2020/01/15 11:26:22[信息]从CSR生成一个新的CA密钥和证书
  2020/01/15 11:26:22[信息]生成收到请求
  2020/01/15 11:26:22[信息]收到CSR
  2020/01/15 11:26:22[信息]生成关键:rsa - 2048
  2020/01/15 11:26:23[信息]编码CSR
  2020/01/15 11:26:23[信息]签署证书编号58994014244974115135502281772101176509863440005
  
  ”指定etcd三个节点之间的通信验证”
  猫在server-csr。json & lt; & lt; EOF
  {
  “CN”:“etcd”,
  “主机”:(
  “192.168.18.128”,
  “192.168.18.148”,
  “192.168.18.145”
  ),
  “关键”:{
  “算法”:“rsa”,
  “大小”:2048
  },
  “名称”:[
  {
  “C”:“CN”,
  “L”:“南京”,
  “圣”:“南京”
  }
  ]
  }
  EOF
  
  “生成ETCD证书服务器密钥。pem server.pem”
  [root@master etcd-cert] # cfssl gencert ca=ca。pem -ca-key=ca-key。pem配置=ca-config。json文件=www server-csr。json | cfssljson光秃秃的服务器
  2020/01/15 11:28:07[信息]生成收到请求
  2020/01/15 11:28:07[信息]收到CSR
  2020/01/15 11:28:07[信息]生成关键:rsa - 2048
  2020/01/15 11:28:07[信息]编码CSR
  2020/01/15 11:28:07[信息]签署证书编号153451631889598523484764759860297996765909979890
  2020/01/15 11:28:07[警告]这个证书缺乏“主机”字段。这使得它不适合
  网站。更多信息见基线要求发行和管理
  v.1.1.6 Publicly-Trusted证书,从CA/浏览器论坛(https://cabforum.org);
  具体来说,部分10.2.3(“信息需求”)。

Kubernetes群集之:二进制部署单etcd,多节点集群