添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
闯红灯的毛巾  ·  c# wpf combobox ...·  1 年前    · 
大鼻子的书包  ·  【RecyclerView】 ...·  1 年前    · 
helm install new-release bitnami/etcd \
  --set statefulset.replicaCount=3 \
  --set persistence.enabled=true \
  --set persistence.size=8Gi \
  --set startFromSnapshot.enabled=true \
  --set startFromSnapshot.existingClaim=my-claim \
  --set startFromSnapshot.snapshotFilename=my-snapshot.db
helm install etcd bitnami/etcd \
  --set replicaCount=3 \
  --set persistence.enabled=true \
  --set global.storageClass=rook-ceph-block \
  --set persistence.size=2Gi \
  --set service.type=NodePort

或者自定义安装

helm pull  bitnami/etcd --untar
vim values.yaml 添加更多参数
[root@node60 es]# helm install etcd etcd/
NAME: etcd
LAST DEPLOYED: Mon Dec  6 00:07:50 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: etcd
CHART VERSION: 6.10.4
APP VERSION: 3.5.1
** Please be patient while the chart is being deployed **
etcd can be accessed via port 2379 on the following DNS name from within your cluster:
    etcd.default.svc.cluster.local
To create a pod that you can use as a etcd client run the following command:
    kubectl run etcd-client --restart='Never' --image marketplace.azurecr.io/bitnami/etcd:3.5.1-debian-10-r31 --env ROOT_PASSWORD=$(kubectl get secret --namespace default etcd -o jsonpath="{.data.etcd-root-password}" | base64 --decode) --env ETCDCTL_ENDPOINTS="etcd.default.svc.cluster.local:2379" --namespace default --command -- sleep infinity
Then, you can set/get a key using the commands below:
    kubectl exec --namespace default -it etcd-client -- bash
    etcdctl --user root:$ROOT_PASSWORD put /message Hello
    etcdctl --user root:$ROOT_PASSWORD get /message
To connect to your etcd server from outside the cluster execute the following commands:
    kubectl port-forward --namespace default svc/etcd 2379:2379 &
    echo "etcd URL: http://127.0.0.1:2379"
 * As rbac is enabled you should add the flag `--user root:$ETCD_ROOT_PASSWORD` to the etcdctl commands. Use the command below to export the password:
    export ETCD_ROOT_PASSWORD=$(kubectl get secret --namespace default etcd -o jsonpath="{.data.etcd-root-password}" | base64 --decode)
I have no name!@etcd-client:/opt/bitnami/etcd$ etcdctl --user root:$ROOT_PASSWORD get /message
/message
Hello
I have no name!@etcd-client:/opt/bitnami/etcd$  etcdctl --user root:$ROOT_PASSWORD put /message jb 
#####################
I have no name!@etcd-client:/opt/bitnami/etcd$ etcdctl --user root:$ROOT_PASSWORD get /message jb
/message
cli客户端测试
### 获取密码
kubectl get secret --namespace default etcd -o jsonpath="{.data.etcd-root-password}" | base64 -d
[root@node60 etcd-v3.5.1-linux-amd64]# kubectl get svc | grep etcd
etcd            NodePort    10.111.45.140   <none>        2379:40488/TCP,2380:60630/TCP   7h14m
etcd-headless   ClusterIP   None            <none>        2379/TCP,2380/TCP               7h14m
[root@node60 etcd-v3.5.1-linux-amd64]# ./etcdctl --user root:siXyhmEXLl --endpoints="http://192.168.8.62:40488" member list -w table
+------------------+---------+--------+------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+------------+
|        ID        | STATUS  |  NAME  |                         PEER ADDRS                         |                                             CLIENT ADDRS                                              | IS LEARNER |
+------------------+---------+--------+------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+------------+
| 45a18acb10aa275e | started | etcd-2 | http://etcd-2.etcd-headless.default.svc.cluster.local:2380 | http://etcd-2.etcd-headless.default.svc.cluster.local:2379,http://etcd.default.svc.cluster.local:2379 |      false |
| 936ce633ac273d75 | started | etcd-1 | http://etcd-1.etcd-headless.default.svc.cluster.local:2380 | http://etcd-1.etcd-headless.default.svc.cluster.local:2379,http://etcd.default.svc.cluster.local:2379 |      false |
| df3b2df95cd5fd29 | started | etcd-0 | http://etcd-0.etcd-headless.default.svc.cluster.local:2380 | http://etcd-0.etcd-headless.default.svc.cluster.local:2379,http://etcd.default.svc.cluster.local:2379 |      false |
+------------------+---------+--------+------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+------------+
[root@node60 etcd-v3.5.1-linux-amd64]#  ./etcdctl --user root:siXyhmEXLl --endpoints="http://192.168.8.62:40488" member list
45a18acb10aa275e, started, etcd-2, http://etcd-2.etcd-headless.default.svc.cluster.local:2380, http://etcd-2.etcd-headless.default.svc.cluster.local:2379,http://etcd.default.svc.cluster.local:2379, false
936ce633ac273d75, started, etcd-1, http://etcd-1.etcd-headless.default.svc.cluster.local:2380, http://etcd-1.etcd-headless.default.svc.cluster.local:2379,http://etcd.default.svc.cluster.local:2379, false
df3b2df95cd5fd29, started, etcd-0, http://etcd-0.etcd-headless.default.svc.cluster.local:2380, http://etcd-0.etcd-headless.default.svc.cluster.local:2379,http://etcd.default.svc.cluster.local:2379, false
[root@node60 etcd-v3.5.1-linux-amd64]# ./etcdctl --user root:siXyhmEXLl --endpoints="http://192.168.8.62:40488" get / --prefix=true --keys-only
/message

再推荐一个etcd客户端

https://etcdmanager.io/
//下载链接
https://github.com/gtamas/etcdmanager/releases/download/1.2.0/etcd-manager-1.2.0-osx.dmg
https://github.com/gtamas/etcdmanager/releases/download/1.2.0/etcd-manager-1.2.0-win64.exe
ETCD 3.5.3版启用ssl
https://docs.bitnami.com/kubernetes/infrastructure/etcd/administration/enable-security/
https://artifacthub.io/packages/helm/bitnami/etcd
helm install my-etcd \
 --set persistence.storageClass=openebs-hostpath \
 --set replicaCount=3 \
 --set persistence.size=1Gi \
 --set auth.rbac.enabled=true \
 --set auth.rbac.rootPassword="123qweasd" \
 --set auth.client.secureTransport=true \
 --set auth.client.useAutoTLS=true \
 --set auth.client.caFilename="ca.pem" \
 --set auth.client.existingSecret="etcd-client-certs" \
 --set auth.peer.secureTransport=true \
 --set auth.peer.useAutoTLS=true \
 --set auth.peer.caFilename="ca.pem" \
 --set resources.limits.cpu=2 \
 --set resources.requests.cpu=300m \
 --set resources.limits.memory=1000Mi \
 --set resources.requests.memory=156Mi \
  bitnami/etcd --version 8.0.1
                    helm repo add bitnami https://charts.bitnami.com/bitnamihelm install new-release bitnami/etcd \  --set statefulset.replicaCount=3 \  --set persistence.enabled=true \  --set persistence.size=8Gi \  --set startFromSnapshot.enabled=true \  --set startF
在使用别人的镜像和yaml出现很多问题后,我通过自己构建dockerfile定制自己的镜像。按照我的步骤,前期将启动脚本和etcd所需配置导入镜像中,这样一来后期部署的yaml只需要打入几个环境变量即可,这样将非常简洁方便!
所需脚本和所有内容都将在我的GitHub中找到:
https://github.com/xll-forever/k8s-etcd
当然,etcd安装包可以去官网下载压缩包,解压后与Dockerfile放在同一目录下
如果你不想自己构建镜像,可以去阿里云拉取我构建
 在 Ubuntu 14.04 容器中运行etcd ( etcd ) 的 Docker 容器,具有环境中的配置设置。
这些环境变量的名称经过精心选择,以与 Kubernetes(主要是 GKE)为定义的服务提供的内容兼容。
 ETCD_SERVER_ID : 必需,整数 1..集群大小
对于集群中的每个 etcd 实例
ETCD_CLIENT_<i>_SERVICE_HOST : etcd 实例的 IP 地址
ETCD_CLIENT_<i>_SERVICE_PORT : etcd 客户端服务的端口号 (4001)
 ETCD_PEER_<i>_SERVICE_HOST : etcd 实例的 IP 地址
ETCD_PEER_<i>_SERVICE_PORT : etcd 客户端服务的端口号
要启动两节点集群,请运行以下命令以启动第一个节点: 
 HOST_IP=
 etcd是一种分布式键值存储,旨在安全地跨集群存储数据。 etcd的可靠性,容错性和易用性使其广泛用于生产中。
TL; DR 
$ docker run -it --name etcd bitnami/etcd
Docker撰写
$ curl -LO https://raw.githubusercontent.com/bitnami/bitnami-docker-etcd/master/docker-compose.yml
$ docker-compose up
为什么要使用Bitnami Images?
 Bitnami密切跟踪上游源代码变化,并使用我们的自动化系统及时发布该图像的新版本。
 对于Bitnami映像,将尽快提供最新的错误修复和功能。
 Bitnami容器,虚拟机和云映像使用相同的组件和配置方法-可以轻松地根据项目需求在格式之间进行切换。
 我们所有的映
Minikube
Minikube是一个工具,可以在本地快速运行一个单节点微型K8s,及用于学习、预览k8s的一些特性使用
部署地址:https://kubernetes.io/docs/setup/minikube
Kubeadmin
Kubeadmin也是一个工具,提供kubeadm init和kubeadm join,用于快速部署k8s集群,相对简单
https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/
环境和部分软件已经配置好了,接着要部署一个Etcd集群Etcd 通常是和master部署在一起,也有人会将 etcd独立于 k8s集群之外,以便于更好地扩展etcd集群。而此次是部署在3个master上。
下面是关于Etcd的一些简单介绍:
Etcd节点数:
etcd 是基于raft算法的分布式键值数据库,在做决策时需要超半数节点的投票,所以 etcd集群 一般推荐奇数节点(3,5,7);etcd是高可用的,3节点etcd集群,最大容忍1台机器宕机。根据网上的资料还可以得出2个结论:设置偶数
				
### 回答1: 答: 部署K8S集群中的Seata需要按照以下步骤进行:1)准备好所需的资源,包括存储空间、网络资源等;2)利用Kubernetes的配置管理工具Helm将Seata部署到Kubernetes集群中;3)根据需要进行Seata的配置;4)启动Seata集群;5)部署测试程序,验证Seata集群是否正常工作。 ### 回答2: Kubernetes(简称K8s)是一个开源的容器编排平台,它能够自动化地部署、扩展和管理应用程序容器。Seata是一种用于解决分布式事务问题的开源框架,可以保证分布式事务的一致性和隔离性。 在Kubernetes中部署Seata集群需要以下步骤: 1. 准备Kubernetes集群:首先需要搭建一个稳定运行的Kubernetes集群。可以选择自建集群或使用云服务提供商的托管服务(如GKE、EKS等)。 2. 创建Seata集群所需的命名空间(Namespace):在Kubernetes中,命名空间用于隔离不同的应用。可以使用kubectl命令或者在yaml文件中定义命名空间。 3. 创建Seata集群所需的持久化存储:Seata集群需要使用持久化存储来保存事务数据和日志。可以选择使用Kubernetes提供的存储卷(Persistent Volume)或者外部存储(如云存储)。 4. 创建Seata集群所需的配置文件:Seata集群需要配置文件来指定各个组件的参数。可以在Kubernetes中使用ConfigMap或Secret来存储和管理配置文件。 5. 配置Seata Server:在Kubernetes中,可以使用Deployment来创建和管理Seata Server的实例。在Deployment中可以指定应用容器的镜像、资源限制以及其他参数。 6. 配置Seata Registry:Seata集群需要使用Registry来进行服务发现和注册。可以选择使用Kubernetes的Service或者其他服务注册中心(如Etcd、Consul等)作为Registry。 7. 配置Seata Client:在应用程序中使用Seata时,需要配置Seata Client来连接Seata集群。可以使用ConfigMap或者环境变量来指定Seata集群的地址和其他参数。 8. 部署应用程序:最后,在Kubernetes中部署应用程序,并将应用程序与Seata集群连接起来。可以使用Deployment或者其他资源对象(如Pod、ReplicaSet)来管理应用程序。 通过以上步骤,就可以在Kubernetes上成功部署Seata集群。这样就可以使用Seata来保证分布式事务的一致性和隔离性,并且通过Kubernetes的自动化和扩展能力,可以实现高可用和高性能的分布式事务处理。 ### 回答3: k8s(Kubernetes)是一个开源的容器编排平台,可用于部署和管理容器化的应用程序。seata是一种分布式事务解决方案,可以帮助开发者实现基于微服务架构的分布式事务管理。在k8s部署seata集群需要以下步骤: 1. 准备seata配置文件:在部署seata之前,需要准备seata的配置文件。这些配置文件通常包括seata的事务协调器(TC)配置、存储模式、数据库连接配置等。 2. 创建k8s部署文件:根据seata的配置文件,创建k8s部署文件。这些部署文件通常包括seata事务协调器的Deployment、Service配置,以及其他相关的资源配置。 3. 部署seata集群:使用kubectl命令将seata集群部署文件应用到k8s集群中。kubectl命令可以创建、更新、删除k8s资源。 4. 验证seata集群部署:使用kubectl命令查看seata集群的运行状态,确保seata事务协调器部署成功。 5. 测试分布式事务功能:通过在微服务中添加seata的相关代码,实现分布式事务功能,并进行测试。可以模拟跨多个微服务的事务操作,验证seata的分布式事务管理能力。 总结:在k8s部署seata集群需要准备seata配置文件,创建k8s部署文件,部署seata集群,并测试分布式事务功能。通过k8s的弹性扩展和自动化管理能力,可以更方便地部署和管理seata集群,提高系统的可靠性和性能。
failed to delegate add: failed to set bridge addr: “cni0“ already has an IP address different from 1