准备
- minikube
- kubectl
- helm
- 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
创建 tiller
$ kubectl create -f tiller.yaml