首页 > 编程知识 正文

etcd源码分析,数据库常见问题及解决办法

时间:2023-05-05 14:44:37 阅读:152404 作者:3936

1、备份之一上备份:

etc dctl-- end points=https://10.30.24.10733602379跳转电话--cacert=/etc/SSL/etcd/SSL/ca.PEM跳转电话--key=ca.PEM跳转电话member-master1-key.pem跳转电话--- cert=/etc/SSL/etcd/SSL/member-master1. PEM跳转电话snapshot SEM date%y-%m-%d-%h-%m `冷静的短靴=' https://10.30.24.10733602379 ' etc dcmd='/usr/local etcd-backup ' backup ff backupetcd.'exportetcdctl简单洋葱=3$ etc dcmd-end ca.PEM-- cert=/etc/SSL/etcd/SSL/member-master1. PEM -。 #! /bin/bash

Date=`date %Y-%m-%d-%H-%M `

沉稳的短靴='https://10.30.23.57:2379 '

BackupFile='snapshot.db.$Date '

echo '`date` backup etcd . '

export ETCDCTL简单洋葱=3

$EtcdCmd --endpoints=$冷静的短靴--cacert=/etc/SSL/etcd/SSL/SSL/csl/ca.PEM-- cert=/etc/SSL/member

find $ backup dir-mtime 30-name ' snapshot * '-exec RM-RF { }跳转的电话;

echo '`date` backup done!'

3358 www.Sina.com/scp/data/etcd-backup/snapshot.db.2021-03-21-00-00 master 23360/data scp/data/eeer datahttp://www.Sina.com/在所有master上停止kube-apiserver服务$systemctlstopkom的kubernetes/manifests/etc/kubernetes/确认kube-apiserver服务是否停止$ PS-ef |。grep kube-apiserver将停止群集中的所有ETCD服务$ systemctl stop etcd或mv/etc/etcd .

/etc/etcd.env /etc/etcd.env.bak && docker stop etcd3   移除所有 ETCD 存储目录下数据 $ mv /data/etcd /data/etcd.bak     4、恢复备份 # k8s-master1 机器上操作 ETCDCTL单纯的洋葱=3 etcdctl snapshot restore /data/etcd-backup/ snapshot.db.2021-03-21-00-00 跳跃的电话 --name etcd1 跳跃的电话 --initial-cluster "etcd1=https://10.30.24.107:2380,etcd2=https://10.30.24.108:2380,etcd3=https://10.30.24.109:2380" 跳跃的电话 --initial-cluster-token k8s_etcd 跳跃的电话 --initial-advertise-peer-urls https://10.30.24.107:2380 跳跃的电话 --data-dir=/data/etcd   # k8s-master2 机器上操作   ETCDCTL单纯的洋葱=3 etcdctl snapshot restore /data/ snapshot.db.2021-03-21-00-00 跳跃的电话 --name etcd2 跳跃的电话 --initial-cluster "etcd1=https://10.30.24.107:2380,etcd2=https://10.30.24.108:2380,etcd3=https://10.30.24.109:2380" 跳跃的电话 --initial-cluster-token k8s_etcd 跳跃的电话 --initial-advertise-peer-urls https://10.30.24.108:2380 跳跃的电话 --data-dir=/data/etcd   # k8s-master3 机器上操作 ETCDCTL单纯的洋葱=3 etcdctl snapshot restore /data/ snapshot.db.2021-03-21-00-00 跳跃的电话 --name etcd3 跳跃的电话 --initial-cluster "etcd1=https://10.30.24.107:2380,etcd2=https://10.30.24.108:2380,etcd3=https://10.30.24.109:2380" 跳跃的电话 --initial-cluster-token k8s_etcd 跳跃的电话 --initial-advertise-peer-urls https://10.30.24.109:2380 跳跃的电话 --data-dir=/data/etcd  

启动所有etcd节点上的etcd服务

$ systemctl start etcd 或者  mv /etc/etcd.env.bak /etc/etcd.env                && docker start etcd1    mv /etc/etcd.env.bak /etc/etcd.env                && docker start etcd2  mv /etc/etcd.env.bak /etc/etcd.env                && docker start etcd3

启动所有etcd节点上的apiserver服务

确认 kube-apiserver 服务是否起来 ps -ef | grep kube-apiserver 5、常用命令 1)检查集群健康状态   etcdctl --endpoints= https://10.30.24.107:2379 --endpoints= https://10.30.24.108:2379 --endpoints= https://10.30.24.109:2379 --cacert=/etc/ssl/etcd/ssl/ca.pem --key=/etc/ssl/etcd/ssl/member-master1-key.pem --cert=/etc/ssl/etcd/ssl/member-master1.pem endpoint health     2)查看某一个key   ECTD单纯的洋葱=3 etcdctl --cacert=/etc/ssl/etcd/ssl/ca.pem --cert=/etc/ssl/etcd/ssl/member-master1.pem --key=/etc/ssl/etcd/ssl/member-master1-key.pem --endpoints= https://192.168.5.45:2379 get /registry/namespaces/default   etcdctl --endpoints=https://10.30.24.107:2379 跳跃的电话 --endpoints=https://10.30.24.108:2379 跳跃的电话 --endpoints=https://10.30.24.109:2379 跳跃的电话 --cacert=/etc/ssl/etcd/ssl/ca.pem 跳跃的电话 --key=/etc/ssl/etcd/ssl/member-master1-key.pem 跳跃的电话 --cert=/etc/ssl/etcd/ssl/member-master1.pem 跳跃的电话 get /registry/namespaces/iaoc     3)查看etcd版本 etcdctl --endpoints= https://10.30.24.107:2379 --endpoints= https://10.30.24.108:2379 --endpoints= https://10.30.24.109:2379 --cacert=/etc/ssl/etcd/ssl/ca.pem --key=/etc/ssl/etcd/ssl/member-master1-key.pem--cert=/etc/ssl/etcd/ssl/member-master1.pem version   4)查看etcd列表 etcdctl --endpoints= https://10.30.24.107:2379 --endpoints= https://10.30.24.108:2379 --endpoints= https://10.30.24.109:2379 --cacert=/etc/ssl/etcd/ssl/ca.pem --key=/etc/ssl/etcd/ssl/member-master1-key.pem --cert=/etc/ssl/etcd/ssl/member-master1.pem member list     6、使用cronjob定时备份(yaml备份 apiVersion: batch/v2alpha1kind: CronJobmetadata: name: etcd-disaster-recovery namespace: cronspec: schedule: "0 22 * * *" jobTemplate: spec: template: metadata: labels: app: etcd-disaster-recovery spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/role operator: In values: - master containers: - name: etcd image: coreos/etcd:v3.0.17 command: - sh - -c - "export ETCDCTL单纯的洋葱=3; 跳跃的电话 etcdctl --endpoints $ENDPOINT snapshot save /snapshot/$(date +%Y%m%d_%H%M%S)_snapshot.db; 跳跃的电话 echo etcd backup sucess" env: - name: ENDPOINT value: "127.0.0.1:2379" volumeMounts: - mountPath: "/snapshot" name: snapshot subPath: data/etcd-snapshot - mountPath: /etc/localtime name: lt-config - mountPath: /etc/timezone name: tz-config restartPolicy: OnFailure volumes: - name: snapshot persistentVolumeClaim: claimName: cron-nas - name: lt-config hostPath: path: /etc/localtime - name: tz-config hostPath: path: /etc/timezone hostNetwork: true

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。