K8S---单节点部署---etcd数据库(1)

K8S—单节点部署—etcd数据库(1)

一.etcd群集

etcd是CoreOS团队于为2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。etcd内部采用raft协议作为一致性算法,etcd基于go语言开发。
etcd群集属于无中心化集群,应用于区块链技术

二.etcd作为服务发现系统的特点

简单:安装配置简单,而且提供了HTTP进行交互,使用也很简单
安全:支持SSL证书验证
快速:根据官方提供的benchmark数据,单实例支持每秒2k+读操作
可靠:采用raft算法,实现分布式数据的可用性和一致性

三.etcd的特征

1.一个强一致性、高可用的服务存储目录
2.具有注册服务和健康服务健康状况的机制:用户可以在etcd中注册服务,并且对注册的服务配置key TTL,定时保持服务的心跳以达到监控健康状态的效果
3.一种查找和连接服务的机制:通过在etcd指定的主题下注册的服务业能在对应的主题下查找到。为了确保连接,我们可以在每个服务器器上部署一个proxy模式的etcd,这样就可以确保访问etcd集群的服务都能够互相连接。

四.部署etcd数据库

角色 ip 组件
master 192.168.88.11 kube-apiserver、kube-controller-manager、kube-scheduler、etcd
node1 192.168.88.13 kubelet、kube-proxy、docker、flnanel、etcd
node2 192.168.88.14 kubelet、kube-proxy、docker、flannel、etcd
1.修改网卡,以第一台master为例

在这里插入图片描述

配置网络环境:
service network restart    ‘重启网络’
ping www.baidu.com   ‘测试网络是否通’
systemctl stop NetworkManager
systemctl disable NetworkManager   ‘防止重启虚拟机IP地址变化’
iptables -F    ‘清空防火墙规则’
setenforce 0    ‘关闭核心防护’
2.创建k8s目录,编写证书,签名,密钥脚本
[root@localhost ~]# mkdir k8s
[root@localhost ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  k8s  公共  模板  视频  图片  文档  下载  音乐  桌面
[root@localhost ~]# cd k8s/
[root@localhost k8s]# ls
etcd-cert.sh  etcd.sh
3.定义ca证书的配置文件
[root@localhost k8s]# vim etcd-cert.sh

cat > ca-config.json <<EOF
{
  "signing": {
    "default": {
      "expiry": "87600h"		//定义使用时长
    },
    "profiles": {
      "www": {
         "expiry": "87600h",
         "usages": [
            "signing",
            "key encipherment",
            "server auth",		//表示server,client可以用ca进行验证
            "client auth"
        ]
      }
    }
  }
}
EOF

cat > ca-csr.json <<EOF		//实现证书签名
{
    "CN": "etcd CA",
    "key": {						//定义算法和长度
        "algo": "rsa",
        "size": 2048
    },
    "names": [			//定义名称
        {
            "C": "CN",
            "L": "Beijing",
            "ST": "Beijing"
        }
    ]
}
EOF

cfssl gencert -initca ca-csr.json | cfssljson -bare ca -		//生成ca证书和私钥

#-----------------------

cat > server-csr.json <<EOF		//指定etcd三个节点的通信验证
{
    "CN": "etcd",
    "hosts": [			//三个节点的地址
    "192.168.88.11",
    "192.168.88.13",
    "192.168.88.14"
    ],
    "key": {
        "algo": "rsa",
        "size": 2048
    },
    "names": [
        {
            "C": "CN",
            "L": "BeiJing",
            "ST": "BeiJing"
        }
    ]
}
EOF

cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=www server-csr.json | cfssljson -bare server	//使用cfssl工具生成证书
</
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值