【运维】K8S集群部署系列之ETCD集群搭建(四)
ETCD集群扩容和缩容
本文将介绍生产环境下如何对ETCD集群进行扩容和缩容。
文章目录
- ETCD集群扩容和缩容
- 新节点环境准备(node3)
- 下载安装包并初始化环境
- 网络准备
- 生成`node3`对等证书
- 向集群中添加普通节点`node3`
- 添加新节点
- 查看集群状态
- 添加`node3`节点配置
- 添加`node3`节点服务文件
- 启动`node3`节点
- 再次查看集群状态
- 将`node3`节点从集群中移除
- 集群节点查看
- 移除节点
- 查看集群状态
- 查看`node3`节点的服务状态
- 向集群中添加安全节点`node3`
- 生成node3节点的服务端证书
- 从普通节点升级为`TLS`认证的安全节点
- 直接将`node3`添加为`TLS`认证的安全节点
- 以`https`方式添加`node3`节点
- 查看集群状态
- 修改`node3`节点配置
- 安全启动`node3`的服务文件
- 删除`node3`节点的旧数据
- 启动`node3`节点
- 再次查看集群状态
新节点环境准备(node3)
下载安装包并初始化环境
mkdir /home/k8s
cd /home/k8s
wget https://github.com/etcd-io/etcd/releases/download/v3.3.13/etcd-v3.3.13-linux-amd64.tar.gz
tar -zxvf etcd-v3.3.13-linux-amd64.tar.gz
mv etcd-v3.3.13-linux-amd64 etcd
chmod -R +x etcd/
cp -f ./{etcd,etcdctl} /usr/bin/
cp -f ./{etcd,etcdctl} /usr/local/bin/
mkdir -p /opt/etcd/{etc,data,pki}
网络准备
cat >>/etc/hosts<< EOF
192.168.159.3 master
192.168.159.4 node1
192.168.159.5 node2
192.168.159.6 node3
EOF# 防火墙设置,开放2379和2380端口,如果启动防火墙但未放开端口则集群状态为“degraded”,
# 开启防火墙的节点状态为“are all unreachable”
# 2379端口提供给客户端访问集群,客户端如:etcdctl
# 2380端口提供给集群节点间通信
systemctl start firewalld
firewall-cmd --zone=public --add-port=2379/tcp --permanent
firewall-cmd --zone=public --add-port=2380/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all
生成node3
对等证书
由于已有集群开启了服务端内部的
TLS
安全认证,因此需要在nodes
准备好证书,
但旧的证书中hosts
列表并不包含node3
节点的主机IP
,因此需要重新生成node3
节点的peer
证书。
cat > /home/k8s/cfssl/ssl/etcd4-peer-csr.json << EOF
{"CN": "etcd4-peer","hosts": ["192.168.159.6"],"key": {"algo": "ecdsa","size": 256},"names": [{"C": "CN","L": "ChengDu","O": "JSQ","OU": "k8s","ST": "SiChuan"}]
}
EOFcfssl gencert --ca=ca.pem --ca-key=ca-key.pem --config=ca-config.json --profile=peer etcd4-peer-csr.json | cfssljson -bare etcd4-peer
scp etcd4-* root@192.168.159.6:/opt/etcd/pki/
注意:此处
hosts
列表中只包含了node3
节点的主机IP
,实际上为了更加方便的进行动态的扩容和缩容操作,对等证书
和服务器证书
的hosts
列表最好只包含本机的IP
地址。
向集群中添加普通节点node3
添加新节点
命令调用方式:
etcdctl member add <memberName> <peerURLS>
;
注意此处添加的节点名和链接应该与新增节点的配置一致;
在已有集群的任意节点(最好为集群主节点,即isLeader=true
的节点)执行如下命令。
etcdctl --ca-file=ca.pem --cert-file=etcdctl.pem --key-file=etcdctl-key.pem member add etcd-4 http://192.168.159.6:2380
查看集群状态
[root@master pki]# etcdctl --ca-file=ca.pem --cert-file=etcdctl.pem --key-file=etcdctl-key.pem member list
46899d42c87d524e: name=etcd-2 peerURLs=https://192.168.159.4:2380 clientURLs=https://192.168.159.4:2379 isLeader=true
6bdd9302771bc9c5: name=etcd-3 peerURLs=https://192.168.159.5:2380 clientURLs=https://192.168.159.5:2379 isLeader=false
a3ec213779ea2c81: name=etcd-1 peerURLs=https://192.168.159.3:2380 clientURLs=https://192.168.159.3:2379 isLeader=false
e1b7f9d6e4ff0f36[unstarted]: peerURLs=https://192.168.159.6:2380
[root@master pki]# etcdctl --ca-file=ca.pem --cert-file=etcdctl.pem --key-file=etcdctl-key.pem cluster-health
member 46899d42c87d524e is healthy: got healthy result from https://192.168.159.4:2379
member 6bdd9302771bc9c5 is healthy: got healthy result from https://192.168.159.5:2379
member a3ec213779ea2c81 is healthy: got healthy result from https://192.168.159.3:2379
member e1b7f9d6e4ff0f36 is unreachable: no available published client urls
cluster is healthy
添加node3
节点配置
此处
ETCD_INITIAL_CLUSTER_STATE
必须为existing
,表示向已有集群新增节点;
由于已有集群已开启TLS
安全验证,因此必须配置相关证书,如果是普通集群则无须配置;
ETCD_PEER_CLIENT_CERT_AUTH=false
表示集群内部访问该节点服务端无须进行TLS
验证。
mkdir -p /opt/etcd/{data,etc}
cat > /opt/etcd/etc/etcd.conf << EOF
#[Member]
ETCD_NAME="etcd-4"
ETCD_DATA_DIR="/opt/etcd/data"
ETCD_LISTEN_PEER_URLS="http://192.168.159.6:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.159.6:2379,http://127.0.0.1:2379"#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.159.6:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.159.6:2379"
ETCD_INITIAL_CLUSTER="etcd-1=https://192.168.159.3:2380,etcd-2=https://192.168.159.4:2380,etcd-3=https://192.168.159.5:2380,etcd-4=http://192.168.159.6:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="existing"#[Security]
ETCD_PEER_CERT_FILE="/opt/etcd/pki/etcd4-peer.pem"
ETCD_PEER_KEY_FILE="/opt/etcd/pki/etcd4-peer-key.pem"
ETCD_PEER_CLIENT_CERT_AUTH="false"
ETCD_PEER_TRUSTED_CA_FILE="/opt/etcd/pki/ca.pem"
EOF
添加node3
节点服务文件
cat > /usr/lib/systemd/system/etcd.service << EOF
[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target[Service]
Type=notify
EnvironmentFile=-/opt/etcd/etc/etcd.conf
ExecStart=/home/k8s/etcd/etcd \
--name=${ETCD_NAME} \
--data-dir=${ETCD_DATA_DIR} \
--listen-peer-urls=${ETCD_LISTEN_PEER_URLS} \
--listen-client-urls=${ETCD_LISTEN_CLIENT_URLS} \
--initial-advertise-peer-urls=${ETCD_INITIAL_ADVERTISE_PEER_URLS} \
--advertise-client-urls=${ETCD_ADVERTISE_CLIENT_URLS} \
--initial-cluster=${ETCD_INITIAL_CLUSTER} \
--initial-cluster-token=${ETCD_INITIAL_CLUSTER_TOKEN} \
--initial-cluster-state=${ETCD_INITIAL_CLUSTER_STATE} \
--peer-cert-file=${ETCD_PEER_CERT_FILE} \
--peer-key-file=${ETCD_PEER_KEY_FILE} \
--peer-client-cert-auth=${ETCD_PEER_CLIENT_CERT_AUTH} \
--peer-trusted-ca-file=${ETCD_PEER_TRUSTED_CA_FILE}
Restart=on-failure
LimitNOFILE=65536[Install]
WantedBy=multi-user.target
EOF
启动node3
节点
systemctl daemon-reload && systemctl start etcd
再次查看集群状态
[root@master pki]# etcdctl --ca-file=ca.pem --cert-file=etcdctl.pem --key-file=etcdctl-key.pem member list
46899d42c87d524e: name=etcd-2 peerURLs=https://192.168.159.4:2380 clientURLs=https://192.168.159.4:2379 isLeader=true
6bdd9302771bc9c5: name=etcd-3 peerURLs=https://192.168.159.5:2380 clientURLs=https://192.168.159.5:2379 isLeader=false
a3ec213779ea2c81: name=etcd-1 peerURLs=https://192.168.159.3:2380 clientURLs=https://192.168.159.3:2379 isLeader=false
e1b7f9d6e4ff0f36: name=etcd-4 peerURLs=http://192.168.159.6:2380 clientURLs=http://192.168.159.6:2379 isLeader=false
[root@master pki]# etcdctl --ca-file=ca.pem --cert-file=etcdctl.pem --key-file=etcdctl-key.pem cluster-health
member 46899d42c87d524e is healthy: got healthy result from https://192.168.159.4:2379
member 6bdd9302771bc9c5 is healthy: got healthy result from https://192.168.159.5:2379
member a3ec213779ea2c81 is healthy: got healthy result from https://192.168.159.3:2379
member e1b7f9d6e4ff0f36 is healthy: got healthy result from http://192.168.159.6:2379
cluster is healthy
至此完成向集群添加一个普通节点的操作,下一步继续进行节点的移除操作。
将node3
节点从集群中移除
集群节点查看
通过查看集群节点确定需要移除节点的
ID
。
[root@master pki]# etcdctl --ca-file=ca.pem --cert-file=etcdctl.pem --key-file=etcdctl-key.pem member list
46899d42c87d524e: name=etcd-2 peerURLs=https://192.168.159.4:2380 clientURLs=https://192.168.159.4:2379 isLeader=true
6bdd9302771bc9c5: name=etcd-3 peerURLs=https://192.168.159.5:2380 clientURLs=https://192.168.159.5:2379 isLeader=false
a3ec213779ea2c81: name=etcd-1 peerURLs=https://192.168.159.3:2380 clientURLs=https://192.168.159.3:2379 isLeader=false
e1b7f9d6e4ff0f36: name=etcd-4 peerURLs=http://192.168.159.6:2380 clientURLs=http://192.168.159.6:2379 isLeader=false
移除节点
[root@master pki]# etcdctl --ca-file=ca.pem --cert-file=etcdctl.pem --key-file=etcdctl-key.pem member remove e1b7f9d6e4ff0f36
Removed member e1b7f9d6e4ff0f36 from cluster
查看集群状态
可以看到节点
etcd-4
已经从集群移除。
[root@master pki]# etcdctl -ca-file=ca.pem -cert-file=etcdctl.pem -key-file=etcdctl-key.pem member list
46899d42c87d524e: name=etcd-2 peerURLs=https://192.168.159.4:2380 clientURLs=https://192.168.159.4:2379 isLeader=true
6bdd9302771bc9c5: name=etcd-3 peerURLs=https://192.168.159.5:2380 clientURLs=https://192.168.159.5:2379 isLeader=false
a3ec213779ea2c81: name=etcd-1 peerURLs=https://192.168.159.3:2380 clientURLs=https://192.168.159.3:2379 isLeader=false[root@master pki]# etcdctl -ca-file=ca.pem -cert-file=etcdctl.pem -key-file=etcdctl-key.pem cluster-health
member 46899d42c87d524e is healthy: got healthy result from https://192.168.159.4:2379
member 6bdd9302771bc9c5 is healthy: got healthy result from https://192.168.159.5:2379
member a3ec213779ea2c81 is healthy: got healthy result from https://192.168.159.3:2379
cluster is healthy
查看node3
节点的服务状态
可以看到服务已被节点
a3ec213779ea2c81
通知停止通信。
[root@localhost ~]# systemctl status etcd
● etcd.serviceLoaded: loaded (/usr/lib/systemd/system/etcd.service; bad; vendor preset: disabled)Active: inactive (dead)8月 13 16:36:22 localhost.localdomain etcd[1344]: failed to dial a3ec213779ea2c81 on stream MsgApp v2 (context canceled)
8月 13 16:36:22 localhost.localdomain etcd[1344]: peer a3ec213779ea2c81 became inactive (message send to peer failed)
8月 13 16:36:22 localhost.localdomain etcd[1344]: stopped streaming with peer a3ec213779ea2c81 (stream MsgApp v2 reader)
8月 13 16:36:22 localhost.localdomain etcd[1344]: stopped streaming with peer a3ec213779ea2c81 (stream Message reader)
8月 13 16:36:22 localhost.localdomain etcd[1344]: stopped peer a3ec213779ea2c81
8月 13 16:39:07 localhost.localdomain systemd[1]: [/usr/lib/systemd/system/etcd.service:1] Assignment outside of section. Ignoring.
8月 13 16:39:07 localhost.localdomain systemd[1]: [/usr/lib/systemd/system/etcd.service:2] Assignment outside of section. Ignoring.
8月 13 16:39:07 localhost.localdomain systemd[1]: [/usr/lib/systemd/system/etcd.service:3] Assignment outside of section. Ignoring.
8月 13 16:39:07 localhost.localdomain systemd[1]: [/usr/lib/systemd/system/etcd.service:4] Assignment outside of section. Ignoring.
8月 13 16:39:07 localhost.localdomain systemd[1]: [/usr/lib/systemd/system/etcd.service:5] Assignment outside of section. Ignoring.
向集群中添加安全节点node3
生成node3节点的服务端证书
由于集群已开启服务端的
TLS
认证,因此node3
节点需要有相应的服务器证书;
但旧的服务端证书中hosts列表并不包含node3
节点的主机IP
,因此需要重新生成node3
节点的server
证书
cat > etcd4-csr.json << EOF
{"CN": "etcd4","hosts": ["192.168.159.6"],"key": {"algo": "ecdsa","size": 256},"names": [{"C": "CN","L": "ChengDu","O": "JSQ","OU": "k8s","ST": "SiChuan"}]
}
EOFcfssl gencert --ca=ca.pem --ca-key=ca-key.pem --config=ca-config.json --profile=server etcd4-csr.json | cfssljson -bare etcd4
scp etcd4* root@192.168.159.6:/opt/etcd/pki/
[root@localhost pki]# ls etcd4*
etcd4.csr etcd4-csr.json etcd4-key.pem etcd4-peer.csr etcd4-peer-csr.json etcd4-peer-key.pem etcd4-peer.pem etcd4.pem
集群的客户端证书由于没有
hosts
主机列表,因此可以通用。
从普通节点升级为TLS
认证的安全节点
参照【运维】K8S集群部署系列之ETCD集群搭建(三)
直接将node3
添加为TLS
认证的安全节点
以https
方式添加node3
节点
[root@master pki]# etcdctl --ca-file=ca.pem --cert-file=etcdctl.pem --key-file=etcdctl-key.pem member add etcd-4 https://192.168.159.6:2380
Added member named etcd-4 with ID 1e7da56305348d0d to clusterETCD_NAME="etcd-4"
ETCD_INITIAL_CLUSTER="etcd-4=https://192.168.159.6:2380,etcd-2=https://192.168.159.4:2380,etcd-3=https://192.168.159.5:2380,etcd-1=https://192.168.159.3:2380"
ETCD_INITIAL_CLUSTER_STATE="existing"
查看集群状态
[root@master pki]# etcdctl --ca-file=ca.pem --cert-file=etcdctl.pem --key-file=etcdctl-key.pem member list
1e7da56305348d0d[unstarted]: peerURLs=https://192.168.159.6:2380
46899d42c87d524e: name=etcd-2 peerURLs=https://192.168.159.4:2380 clientURLs=https://192.168.159.4:2379 isLeader=true
6bdd9302771bc9c5: name=etcd-3 peerURLs=https://192.168.159.5:2380 clientURLs=https://192.168.159.5:2379 isLeader=false
a3ec213779ea2c81: name=etcd-1 peerURLs=https://192.168.159.3:2380 clientURLs=https://192.168.159.3:2379 isLeader=false[root@master pki]# etcdctl --ca-file=ca.pem --cert-file=etcdctl.pem --key-file=etcdctl-key.pem cluster-health
member 1e7da56305348d0d is unreachable: no available published client urls
member 46899d42c87d524e is healthy: got healthy result from https://192.168.159.4:2379
member 6bdd9302771bc9c5 is healthy: got healthy result from https://192.168.159.5:2379
member a3ec213779ea2c81 is healthy: got healthy result from https://192.168.159.3:2379
cluster is degraded
修改node3
节点配置
此处修改字段
ETCD_LISTEN_PEER_URLS
、ETCD_LISTEN_CLIENT_URLS
、ETCD_INITIAL_ADVERTISE_PEER_URLS
、ETCD_ADVERTISE_CLIENT_URLS
、ETCD_INITIAL_CLUSTER
、ETCD_PEER_CLIENT_CERT_AUTH
;
新增字段ETCD_CERT_FILE
、ETCD_KEY_FILE
、ETCD_CLIENT_CERT_AUTH
、ETCD_TRUSTED_CA_FILE
;
注意字段ETCD_INITIAL_CLUSTER_STATE
的值必须为existing
。
cat > /opt/etcd/etc/etcd.conf << EOF
#[Member]
ETCD_NAME="etcd-4"
ETCD_DATA_DIR="/opt/etcd/data"
ETCD_LISTEN_PEER_URLS="https://192.168.159.6:2380"
ETCD_LISTEN_CLIENT_URLS="https://192.168.159.6:2379,http://127.0.0.1:2379"#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.159.6:2380"
ETCD_ADVERTISE_CLIENT_URLS="https://192.168.159.6:2379"
ETCD_INITIAL_CLUSTER="etcd-1=https://192.168.159.3:2380,etcd-2=https://192.168.159.4:2380,etcd-3=https://192.168.159.5:2380,etcd-4=https://192.168.159.6:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="existing"#[Security]
ETCD_CERT_FILE="/opt/etcd/pki/etcd4.pem"
ETCD_KEY_FILE="/opt/etcd/pki/etcd4-key.pem"ETCD_CLIENT_CERT_AUTH="true"
ETCD_TRUSTED_CA_FILE="/opt/etcd/pki/ca.pem"ETCD_PEER_CERT_FILE="/opt/etcd/pki/etcd4-peer.pem"
ETCD_PEER_KEY_FILE="/opt/etcd/pki/etcd4-peer-key.pem"
ETCD_PEER_CLIENT_CERT_AUTH="true"
ETCD_PEER_TRUSTED_CA_FILE="/opt/etcd/pki/ca.pem"
EOF
安全启动node3
的服务文件
cat > /usr/lib/systemd/system/etcd.service << EOF
[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target[Service]
Type=notify
EnvironmentFile=-/opt/etcd/etc/etcd.conf
ExecStart=/home/k8s/etcd/etcd \
--name=${ETCD_NAME} \
--data-dir=${ETCD_DATA_DIR} \
--listen-peer-urls=${ETCD_LISTEN_PEER_URLS} \
--listen-client-urls=${ETCD_LISTEN_CLIENT_URLS} \
--advertise-client-urls=${ETCD_ADVERTISE_CLIENT_URLS} \
--initial-advertise-peer-urls=${ETCD_INITIAL_ADVERTISE_PEER_URLS} \
--initial-cluster=${ETCD_INITIAL_CLUSTER} \
--initial-cluster-token=${ETCD_INITIAL_CLUSTER_TOKEN} \
--initial-cluster-state=${ETCD_INITIAL_CLUSTER_STATE} \
--cert-file=${ETCD_CERT_FILE} \
--key-file=${ETCD_KEY_FILE} \
--client-cert-auth=${ETCD_CLIENT_CERT_AUTH} \
--trusted-ca-file=${ETCD_TRUSTED_CA_FILE} \
--peer-cert-file=${ETCD_PEER_CERT_FILE} \
--peer-key-file=${ETCD_PEER_KEY_FILE} \
--peer-client-cert-auth=${ETCD_PEER_CLIENT_CERT_AUTH} \
--peer-trusted-ca-file=${ETCD_PEER_TRUSTED_CA_FILE}
Restart=on-failure
LimitNOFILE=65536[Install]
WantedBy=multi-user.target
EOF
删除node3
节点的旧数据
这一步很重要,否则
node3
节点无法正确启动。
rm -rf /opt/etcd/data/*
启动node3
节点
systemctl daemon-reload && systemctl start etcd
再次查看集群状态
[root@master pki]# etcdctl --ca-file=ca.pem --cert-file=etcdctl.pem --key-file=etcdctl-key.pem member list
1e7da56305348d0d: name=etcd-4 peerURLs=https://192.168.159.6:2380 clientURLs=https://192.168.159.6:2379 isLeader=false
46899d42c87d524e: name=etcd-2 peerURLs=https://192.168.159.4:2380 clientURLs=https://192.168.159.4:2379 isLeader=true
6bdd9302771bc9c5: name=etcd-3 peerURLs=https://192.168.159.5:2380 clientURLs=https://192.168.159.5:2379 isLeader=false
a3ec213779ea2c81: name=etcd-1 peerURLs=https://192.168.159.3:2380 clientURLs=https://192.168.159.3:2379 isLeader=false
[root@master pki]# etcdctl --ca-file=ca.pem --cert-file=etcdctl.pem --key-file=etcdctl-key.pem cluster-health
member 1e7da56305348d0d is healthy: got healthy result from https://192.168.159.6:2379
member 46899d42c87d524e is healthy: got healthy result from https://192.168.159.4:2379
member 6bdd9302771bc9c5 is healthy: got healthy result from https://192.168.159.5:2379
member a3ec213779ea2c81 is healthy: got healthy result from https://192.168.159.3:2379
cluster is healthy
至此
ETCD
集群搭建及其动态扩容和缩容介绍完毕,下一篇我们将对etcdctl
的基本操作进行简单介绍。
【运维】K8S集群部署系列之ETCD集群搭建(四)相关推荐
- 【运维】K8S集群部署系列之ETCD集群搭建(二)
TLS证书生成 文章目录 TLS证书生成 简介 工具下载 创建CA认证中心 CA证书申请文件 生成CA证书和私钥 配置证书生成策略 证书验证 查看证书 验证证书 生成ETCD集群的TLS证书 服务端证 ...
- Linux运维企业架构项目实战系列
Linux运维企业架构项目实战系列 目录 一.全网备份 (一)部署Rsync守护进程 1)服务端(backup) 2)客户端(web01/02/03 nfs01) (二)编写脚本文件 1)客户端脚本编 ...
- 服务器硬件和算力,硬件科普Filecoin运维交付之业务部署
随着Filecoin存储体量的不断增加,"运维"的重要性在这个行业里也愈发凸显.如何将每个环节的各种因素变得可控:一方面需要对硬件环境进行预检措施,以高效应对突发事件:另一方面也需 ...
- 什么是腾讯蓝鲸运维体系?附部署指南
腾讯蓝鲸智云是一个高效的运维基础服务自动化体系,拥有支撑数百款腾讯业务的经验沉淀,是一个相对成熟稳定的运维系统. 简而言之,基于蓝鲸这套体系,你可以很方便地管控多个主机.执行作业.监控其运行状态. 此 ...
- 自动化运维工具SaltStack详细部署
2019独角兽企业重金招聘Python工程师标准>>> 自动化运维工具SaltStack详细部署 2014-12-28 17:30:34 标签:saltstack 原创作品,允许转载 ...
- 自动化运维工具Ansible详细部署 - 人生理想在于坚持不懈 - 51CTO技术博客
自动化运维工具Ansible详细部署 - 人生理想在于坚持不懈 - 51CTO技术博客 自动化运维工具Ansible详细部署 - 人生理想在于坚持不懈 - 51CTO技术博客 自动化运维工具Ansib ...
- Ansible自动化运维工具介绍与部署
ansible自动化运维工具介绍与部署 文章目录 一.什么是自动化运维? 二.常用的自动化运维工具 2.1 Ansible 2.2 SaltStack 2.3 Puppet 2.4 三种自动化工具特点 ...
- Redis集群运维与核心原理(哨兵选举、集群选举等)剖析
1.Redis集群方案比较 哨兵模式 高可用集群模式 redis集群是一个由多个主从节点群组成的分布式服务器群,它具有复制.高可用和分片特性.Redis集群不需要 sentinel哨兵也能完成节点移除 ...
- 更灵活的边缘云原生运维:OpenYurt 单元化部署新增 Patch 特性
作者 | 张杰(冰羽) 来源 | 阿里巴巴云原生公众号 背景 在正文开始之前,我们先回顾一下单元化部署的概念和设计理念.在边缘计算场景下,计算节点具有很明显的地域分布属性,相同的应用可能需要部署在不同 ...
最新文章
- 精彩碰撞!神经网络和传统滤波竟有这火花?
- 【科技金融】互金风控大数据盘点
- session过期跳转到登陆页面并跳出iframe框架的最简单方法
- 统计个人已完成的工作量_已注销注册人数统计(勘察设计类)2019.4.11
- 图书馆可以借到的书目
- 如何在Debian 9 / Debian 8上安装MariaDB 10.3
- python如何读取文件数据恢复_删python目录
- Tomcat8.5.40启动后一直卡在日志At least one JAR was scanned for TLDs yet contained no TLDs
- A卡比N卡画质好,真有此事吗?
- Codeforces 484E Sign on Fence(是持久的段树+二分法)
- bzoj4332;vijos1955:JSOI2012 分零食
- C C++回调函数和java的回调函数
- 【FPGA教程案例13】基于vivado核的CIC滤波器设计与实现
- 名校400门免费人文社科公开课视频合集!
- 北京大兴国际机场希尔顿花园酒店开业
- java war文件_java – 使用参数部署* .war文件
- Python练手小项目(6)随机取红黑球并计算概率
- Git: Cannot update paths and switch to branch 'feature' at the same time.
- 20个黄色网页设计,激发你的灵感
- [埋坑系列] 基于QT/C++的杰瑞走迷宫小游戏 :1.大体构造
热门文章
- 基于某高校的园区网络综合实验(eNSP)
- ElasticSearch最佳入门实践(一)什么是ElasticSearch
- Dokcer安装青龙面板-京东豆天天领到手软
- [Linux 高并发服务器]网络基础
- 汽车维修 L9826芯片应用
- iOS HomeKit 使用及介绍
- win10和ubuntu18.04双系统解决罗技k380用一个频道无缝连接
- .NET项目开发—浅谈面向对象的纵横向关系、多态入口,单元测试(项目小结)...
- Java打开文件夹/文件
- 金蝶、用友的二次开发通常是指做什么?(问答形式)