返回介绍

管理 TiDB 集群的 Command Cheat Sheet

发布于 2020-10-27 04:51:20 字数 10522 浏览 936 评论 0 收藏 0

本文提供管理 TiDB 集群的 Command Cheat Sheet。

kubectl

查看资源

  • 查看 CRD:

    kubectl get crd
  • 查看 TidbCluster:

    kubectl -n ${namespace} get tc ${name}
  • 查看 TidbMonitor:

    kubectl -n ${namespace} get tidbmonitor ${name}
  • 查看 Backup:

    kubectl -n ${namespace} get bk ${name}
  • 查看 BackupSchedule:

    kubectl -n ${namespace} get bks ${name}
  • 查看 Restore:

    kubectl -n ${namespace} get restore ${name}
  • 查看 TidbClusterAutoScaler:

    kubectl -n ${namespace} get tidbclusterautoscaler ${name}
  • 查看 TidbInitializer:

    kubectl -n ${namespace} get tidbinitializer ${name}
  • 查看 Advanced StatefulSet:

    kubectl -n ${namespace} get asts ${name}
  • 查看 Pod:

    kubectl -n ${namespace} get pod ${name}

    查看 TiKV Pod:

    kubectl -n ${namespace} get pod -l app.kubernetes.io/component=tikv

    持续观察 Pod 状态变化:

    watch kubectl -n ${namespace} get pod

    查看 Pod 详细信息:

    kubectl -n ${namespace} describe pod ${name}
  • 查看 Pod 所在 Node:

    kubectl -n ${namespace} get pods -l "app.kubernetes.io/component=tidb,app.kubernetes.io/instance=${cluster_name}" -ojsonpath="{range .items[*]}{.spec.nodeName}{'\n'}{end}"
  • 查看 Service:

    kubectl -n ${namespace} get service ${name}
  • 查看 ConfigMap:

    kubectl -n ${namespace} get cm ${name}
  • 查看 PV:

    kubectl -n ${namespace} get pv ${name}

    查看集群使用的 PV:

    kubectl get pv -l app.kubernetes.io/namespace=${namespace},app.kubernetes.io/managed-by=tidb-operator,app.kubernetes.io/instance=${cluster_name}
  • 查看 PVC:

    kubectl -n ${namespace} get pvc ${name}
  • 查看 StorageClass:

    kubectl -n ${namespace} get sc
  • 查看 StatefulSet:

    kubectl -n ${namespace} get sts ${name}

    查看 StatefulSet 详细信息:

    kubectl -n ${namespace} describe sts ${name}

更新资源

  • 为 TiDBCluster 增加 Annotation:

    kubectl -n ${namespace} annotate tc ${cluster_name} ${key}=${value}

    为 TiDBCluster 增加强制升级 Annotation:

    kubectl -n ${namespace} annotate --overwrite tc ${cluster_name} tidb.pingcap.com/force-upgrade=true

    为 TiDBCluster 删除强制升级 Annotation:

    kubectl -n ${namespace} annotate tc ${cluster_name} tidb.pingcap.com/force-upgrade-

    为 Pod 开启 Debug 模式:

    kubectl -n ${namespace} annotate pod ${pod_name} runmode=debug

编辑资源

  • 编辑 TidbCluster:

    kubectl -n ${namespace} edit tc ${name}

Patch 资源

  • Patch PV ReclaimPolicy:

    kubectl patch pv ${name} -p '{"spec":{"persistentVolumeReclaimPolicy":"Delete"}}'
  • Patch PVC:

    kubectl -n ${namespace} patch pvc ${name} -p '{"spec": {"resources": {"requests": {"storage": "100Gi"}}}'
  • Patch StorageClass:

    kubectl patch storageclass ${name} -p '{"allowVolumeExpansion": true}'

创建资源

  • 通过 Yaml 文件创建集群:

    kubectl -n ${namespace} apply -f ${file}
  • 创建 Namespace:

    kubectl create ns ${namespace}
  • 创建 Secret:

    创建证书的 Secret:

    kubectl -n ${namespace} create secret generic ${secret_name} --from-file=tls.crt=${cert_path} --from-file=tls.key=${key_path} --from-file=ca.crt=${ca_path}

    创建用户名、密码的 Secret:

    kubectl -n ${namespace} create secret generic ${secret_name} --from-literal=user=${user} --from-literal=password=${password}

与 Running Pod 交互

  • 查看 PD 配置文件:

    kubectl -n ${namespace} -it exec ${pod_name} -- cat /etc/pd/pd.toml
  • 查看 TiDB 配置文件:

    kubectl -n ${namespace} -it exec ${pod_name} -- cat /etc/tidb/tidb.toml
  • 查看 TiKV 配置文件:

    kubectl -n ${namespace} -it exec ${pod_name} -- cat /etc/tikv/tikv.toml
  • 查看 Pod Log:

    kubectl -n ${namespace} logs ${pod_name} -f

    查看上一次容器的 Log:

    kubectl -n ${namespace} logs ${pod_name} -p

    如果 Pod 内有多个容器,查看某一个容器的 Log:

    kubectl -n ${namespace} logs ${pod_name} -c ${container_name}
  • 暴露服务:

    kubectl -n ${namespace} port-forward svc/${service_name} ${local_port}:${port_in_pod}

    暴露 PD 服务:

    kubectl -n ${namespace} port-forward svc/${cluster_name}-pd 2379:2379

与 Node 交互

  • 把 Node 设置为不可调度:

    kubectl cordon ${node_name}
  • 取消 Node 不可调度:

    kubectl uncordon ${node_name}

删除资源

  • 删除 Pod:

    kubectl delete -n ${namespace} pod ${pod_name}
  • 删除 PVC:

    kubectl delete -n ${namespace} pvc ${pvc_name}
  • 删除 TidbCluster:

    kubectl delete -n ${namespace} tc ${tc_name}
  • 删除 TidbMonitor:

    kubectl delete -n ${namespace} tidbmonitor ${tidb_monitor_name}
  • 删除 TidbClusterAutoScaler:

    kubectl -n ${namespace} delete tidbclusterautoscaler ${name}

更多

其他更多 kubectl 的使用,请参考 Kubectl Cheat Sheet

Helm

安装 Tiller

helm init --service-account=tiller --upgrade

添加 Helm Repo

helm repo add pingcap https://charts.pingcap.org/

更新 Helm Repo

helm repo update

查看可用的 Helm Chart

helm search ${chart_name} -l --devel

示例:

helm search tidb-operator -l --devel

获取 Helm Chart 默认 values.yaml

helm inspect values ${chart_name} --version=${chart_version} > values.yaml

示例:

helm inspect values pingcap/tidb-operator --version=v1.1.6 > values-tidb-operator.yaml

使用 Helm Chart 部署

helm install ${chart_name} --name=${name} --namespace=${namespace} --version=${chart_version} -f ${values_file}

示例:

helm install pingcap/tidb-operator --name=tidb-operator --namespace=tidb-admin --version=v1.1.6 -f values-tidb-operator.yaml

查看已经部署的 Helm Release

helm ls

升级 Helm Release

helm upgrade ${name} ${chart_name} --version=${chart_version} -f ${values_file}

示例:

helm upgrade tidb-operator pingcap/tidb-operator --version=v1.1.6 -f values-tidb-operator.yaml

删除 Helm Release

helm del --purge ${name}

示例:

helm del --purge tidb-operator

更多

其他更多 Helm 的使用,请参考 Helm Commands

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文