前一段时间整理了下Windows环境下k8s的安装调试,整理下细节。
1:docker和docker-compose安装
参考:https://docs.docker.com/engine/install/centos/
$ yum install -y yum-utils
$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ yum install docker-ce docker-ce-cli containerd.io
$ systemctl start docker
$ curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2:安装 kubectl
参考:https://kubernetes.io/zh-cn/docs/tasks/tools/install-kubectl-linux/
3:windows安装 minikube
minikube是一个不错的本地k8s开发环境,参考:
https://developer.aliyun.com/article/221687
https://minikube.sigs.k8s.io/docs/start/
在v1.24.0的官方 Minikube 中,已经合并了由阿里云团队支持的方案,可以帮助大家利用阿里云的服务来获取所需Docker镜像,二进制文件和配置,也可以完美支持 Minikube 丰富的 addon 组件!
minikube支持docker,VirtualBox等驱动,VirtualBox要设置BIOS,所以选择了docker
$ minikube --driver=docker start --image-mirror-country='cn' --image-repository=‘registry.cn-hangzhou.aliyuncs.com/google_containers’
$ minikube help start
—image-mirror-country表示地区,在中国就选择cn;—image-repository表示从哪儿选择拉取docker镜像,在中国地区就是阿里云的镜像地址,这样各个k8s组件就从阿里云下载了;—registry-mirror表示传递给docker daemon镜像地址(registry-mirrors)。
打开dashboard:
$ minikube dashboard
切换上下文:
$ kubectl config use-context minikube
4:Docker Desktop运行k8s
Docker Desktop也默认支持k8s,参考:
https://developer.aliyun.com/article/672675
https://github.com/AliyunContainerService/k8s-for-docker-desktop
Docker daemon 配置镜像加速,可以选择阿里云或 https://docker.mirrors.ustc.edu.cn,然后运行load_images.sh下载k8s所需要的镜像。
$ kubectl config use-context docker-desktop
$ kubectl cluster-info
打开proxy,用于集群私有网络的通信:
$ kubectl proxy --port=8003
在安装的时候遇到k8s不能启动的问题,一方面要支持wsl2,另外拷贝NoLsp.exe重启解决了。
5:测试
使用Google官方的镜像(https://console.cloud.google.com/gcr/images/google-samples/GLOBAL/)进行测试:
$ kubectl create deployment kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1
$ kubectl get deployments
$ kubectl delete deploy/kubernetes-bootcamp
$ kubectl get pods -o go-template --template "{{range .items}}{{.metadata.name}}{{'\n'}}{{end}}"
$ curl http://localhost:8002/api/v1/namespaces/default/pods/pod名称/
$ kubectl describe pod pod名称
$ kubectl describe pods
期间遇到镜像不能拉取的问题,后来Docker daemon配置后就好了,但后来去除Docker daemon并删除镜像也好了,所以这里不知所以然。