最近在参与社区flink-operator的开发,开发的过程中经常使用到minikube来本地验证这篇文章记录下相关使用
安装
【Minikube使用文档】https://minikube.sigs.k8s.io/docs/start/ 需要先安装docker环境
登录节点
minikube ssh
调整资源 启动pod超时
_ Warning FailedScheduling 23s (x2 over 91s) default-scheduler 0/1 nodes are available: 1 Insufficient memory._
直接命令行设置资源
minikube start --cpus 4 --memory 8G
minikube config set cpus N
minikube config set memory N
要先删除,否则重启后node还是不变,调整资源后可能需要相应的docker容器也进行调整
https://github.com/eclipse/che/issues/14067
minikube delete
minikube stop
minikube start --cpus 4 --memory 8G
kubectl describe node minikube
拷贝文件 https://minikube.sigs.k8s.io/docs/commands/cp/
本机和minikube node以及node之间都可以拷贝文件
minikube cp ~/TopSpeedWindowing.jar minikube:/tmp/flink/userlib/TopSpeedWindowing.jar
加载镜像 load之前要先把使用镜像的pod停止,否则镜像还在被使用
minikube image load aitozi/flink-java-operator:latest
可以minikube ssh之后查看镜像id和本地是否一致,这样可以加快debug流程.
使用问题 删除crd失败 第一步首先要删除所有相关的cr,删除cr也卡住
文章图片
通过将finalizer置空删除
kubectl get flinkdep basic-checkpoint-ha-example -o=json | \
jq '.metadata.finalizers = null' | kubectl apply -f -
这样apply之后就能删除了, cr和crd也可以正常删除了
测试不同域名的k8s集群访问情况
apiVersion: v1
kind: Pod
metadata:
name: busybox-sleep
spec:
containers:
- name: busybox
image: busybox
args:
- sleep
- "1000000"
- name: hello-minikubi
image: k8s.gcr.io/echoserver:1.4
minikube ssh
docker ps
docker exec -it 92de341e7767/bin/sh
测试LoadBalancer和NodePort
kubectl expose deployment hello-minikube --type=LoadBalancer --port=8080
kubectl expose deployment hello-minikube --type=ClusterIP --cluster-ip='None' --port=8080