当前位置:网站首页>helm部署etcd集群
helm部署etcd集群
2022-07-06 10:52:00 【开发运维玄德公】
文章目录
1. chart和镜像准备
1.1 官方下载chart
- 下载地址
https://artifacthub.io/ - 搜索etcd,选择bitnami 的版本
1.2 下载
找一台可以上公网的服务器,参照官方文下载chart包
- 添加helm仓库
# helm repo add bitnami-aks https://marketplace.azurecr.io/helm/v1/repo
- 选择适合版本
# helm pull bitnami-aks/etcd --version 6.2.9
可见chart包已经下载到当前目录
# ll
-rw-r--r-- 1 root root 34334 7月 19 14:34 etcd-6.2.10.tgzgz
将chart拷贝到要目标服务器上即可。
1.3 下载镜像
1.3.1 下载镜像
离线安装需要提前准备如下镜像:
- etcd镜像(必要)
docker.io/bitnami/etcd:3.4.15-debian-10-r33
- 许可证相关(非必要)
下边这个镜像是写许可证用的,如果没有启用许可证可以不下载docker.io/bitnami/bitnami-shell:10-debian-10-r134
1.3.2 上传私有镜像仓库
私有镜像镜像名如下:harbocto.xxx.com.cn/bitnami/etcd:3.4.15-debian-10-r33
harbocto.xxx.com.cn/bitnami/bitnami-shell:10-debian-10-r134
2. 修改配置文件
进入解压缩后生成的etcd目录
- 修改镜像(离线安装必要)
修改成本地镜像
image:
registry: harbocto.xxx.com.cn
repository: bitnami/etcd
tag: 3.5.0-debian-10-r24
下边许可证没有启用,所以其实不修改也可以
volumePermissions:
enabled: false
image:
registry: harbocto.xxx.com.cn
repository: bitnami/bitnami-shell
tag: 10-debian-10-r134
pullPolicy: Always
- 修改密码(非必要)
auth:
rbac:
……
rootPassword: "Boe888888"
- 修改副本数(必要)
replicaCount: 3
- 持久化存储大小(非必要)
默认开启了持久化存储:persistence.enabled=true
所以我们只需要改pvc的大小即可
persistence:
......
size: 50Gi
- 修改为 NodePort(非必要)
我实际并没有打开,所以后边的service可以看到我依然使用的ClusterIP
注释ClusterIP
后添加如下内容:
service:
type: NodePort
#type: ClusterIP
......
nodePorts:
clientPort: "31015"
peerPort: "31016"
3 启动服务
- 创建namespace,进入chart的etcd目录启动服务
[[email protected] etcd]# kubectl create namespace etcd
[[email protected] etcd]# helm install etcd -n etcd ./
- 查看pod
[[email protected] etcd]# kubectl get pod -n etcd
NAME READY STATUS RESTARTS AGE
etcd-0 1/1 Running 0 25m
etcd-1 1/1 Running 0 25m
etcd-2 1/1 Running 0 25m
- 查看service
[[email protected] etcd]# kubectl get service -n etcd
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
etcd ClusterIP 10.1.231.186 <none> 2379/TCP,2380/TCP 25m
etcd-headless ClusterIP None <none> 2379/TCP,2380/TCP 25m
4. 测试
- 输出
刚才创建的时候可见数据如下:
[[email protected] etcd]# helm install etcd -n etcd ./
NAME: etcd
LAST DEPLOYED: Mon Jul 19 15:56:47 2021
NAMESPACE: etcd
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
** 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.etcd.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 harbocto.boe.com.cn/bitnami/etcd:3.5.0-debian-10-r24 --env ROOT_PASSWORD=$(kubectl get secret --namespace etcd etcd -o jsonpath="{.data.etcd-root-password}" | base64 --decode) --env ETCDCTL_ENDPOINTS="etcd.etcd.svc.cluster.local:2379" --namespace etcd --command -- sleep infinity
Then, you can set/get a key using the commands below:
kubectl exec -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 etcd 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 etcd etcd -o jsonpath="{.data.etcd-root-password}" | base64 --decode)
- 进入etcd的pod
[[email protected] etcd]# kubectl exec -it -n etcd etcd-0 bash
- 写入数据
I have no [email protected]:/opt/bitnami/etcd$ etcdctl --user root:Bxx888888 put /message Hello
OK
- 读刚才写入的数据
I have no [email protected]:/opt/bitnami/etcd$ etcdctl --user root:Bxx888888 get /message
/message
Hello
FAQ
1)helm3.0.3报错
helm 3.0.3 报错如下:
[[email protected] etcd]# helm version
version.BuildInfo{
Version:"v3.0.3", GitCommit:"ac925eb7279f4a6955df663a0128044a8a6b7593", GitTreeState:"clean", GoVersion:"go1.13.6"}
[[email protected] etcd]# helm install etcd -n etcd-ha ./
Error: parse error at (etcd/charts/common/templates/_secrets.tpl:84): function "lookup" not defined
【解决】
我是直接升级到3.5.4 解决了
边栏推荐
- 10、 Process management
- 44 colleges and universities were selected! Publicity of distributed intelligent computing project list
- DOM Brief
- Stm32+mfrc522 completes IC card number reading, password modification, data reading and writing
- SAP Fiori 应用索引大全工具和 SAP Fiori Tools 的使用介绍
- [Sun Yat sen University] information sharing of postgraduate entrance examination and re examination
- None of the strongest kings in the monitoring industry!
- From 2022 to 2024, the list of cifar azrieli global scholars was announced, and 18 young scholars joined 6 research projects
- Numerical analysis: least squares and ridge regression (pytoch Implementation)
- wx小程序学习笔记day01
猜你喜欢
The role of applet in industrial Internet
重磅硬核 | 一文聊透对象在 JVM 中的内存布局,以及内存对齐和压缩指针的原理及应用
Excellent open source fonts for programmers
Self-supervised Heterogeneous Graph Neural Network with Co-contrastive Learning 论文阅读
Xu Xiang's wife Ying Ying responded to the "stock review": she wrote it!
Why does wechat use SQLite to save chat records?
Docker installation redis
Solve DoS attack production cases
Implementation of AVL tree
Handwritten online chat system (principle part 1)
随机推荐
SQL优化问题的简述
Hongke shares | plate by plate ar application in Beijing Winter Olympics
使用cpolar建立一个商业网站(1)
十、进程管理
用友OA漏洞学习——NCFindWeb 目录遍历漏洞
Medical image segmentation
Installation and management procedures
This article discusses the memory layout of objects in the JVM, as well as the principle and application of memory alignment and compression pointer
How does crmeb mall system help marketing?
Cobra quick start - designed for command line programs
SQL injection Foundation
Method of accessing mobile phone storage location permission under non root condition
C#/VB.NET 给PDF文档添加文本/图像水印
STM32+ENC28J60+UIP协议栈实现WEB服务器示例
Echart simple component packaging
Crawling data encounters single point login problem
Unity资源顺序加载的一个方法
Execution process of MySQL query request - underlying principle
STM32+MFRC522完成IC卡号读取、密码修改、数据读写
Coco2017 dataset usage (brief introduction)