天天看點

在 minikube 上使用 TiDB Operator 建構 TiDB 叢集(持續更新中)

作者:maiyang​

準備

  1. minikube
  2. kubectl
  3. helm
  4. tidb-operator

開始

如果你的本地環境和文檔所用的相容,那麼你按照文檔進行操作,應該都沒有任何問題的(一句廢話,?),但是預設值啟動的話,你很大機率會在執行到 helm install pingcap/tidb-cluster 的時候出現了錯誤:​

​Unable to connect to the server: net/http: TLS handshake timeout​

然後執行 ​

​minikube status​

minikube status
host: Running
kubelet: Running
apiserver: Error
kubectl: Correctly Configured: pointing to minikube-vm at 192.168.99.105      

kubernetes 的 API Server 顯示:​

​Error​

​,已經挂掉了…

其實在操作文檔手冊中 FAQ,已經跟我們提到了 “Minikube 上的 TiDB 叢集不響應或者響應非常慢”

Minikube 虛拟機預設配置為 2048 MB 記憶體和 2 個 CPU。可以在 ​

​minikube start​

​​ 時通過 ​

​--memory​

​​ 和 ​

​--cpus​

​ 選項為其配置設定更多資源。注意,為了使配置修改生效,你需要重新建立 Minikube 虛拟機。

minikube delete && 
minikube start --cpus 4 --memory 4096 ...      

是以,我們隻能修改配置後再來走一遍操作手冊了。

如果你在重新來一遍時,像我這樣“手賤”,把 minikube 和 kubernetes 都更新了的話,那可能就會有悲劇發生。

執行到 ​

​helm init​

​​ 的時候,始終會報錯:​

​Error: error installing: the server could not find the requested resource​

産生這個問題是因為我們的 kubernetes 太新了,helm 跟其有相容問題(helm v2.14.3 不相容 Kubernetes 1.16.0 的 apiVersion ),咱們需要做一些配置修改:

解決方案的操作步驟:

$ helm init --output yaml > tiller.yaml      

更新 tiller.yaml 兩處:

  • apiVersion 版本
  • 增加選擇器
apiVersion: apps/v1
kind: Deployment
...
spec:
  replicas: 1
  strategy: {}
  selector:
    matchLabels:
      app: helm
      name: tiller      
$ kubectl create -f tiller.yaml      

參考文檔

  1. ​​在 Minikube 叢集上部署 TiDB 叢集​​
  2. ​​Kubernetes 1.6.0 安裝問題彙總​​
  3. ​​helm v2.14.3 不相容 Kubernetes 1.16.0 的 apiVersion​​

繼續閱讀