基于 Docker for MAC 的 Kubernetes 本地环境搭建与应用部署
查看Docker for mac支持的Kubernates版本:
下载对应的镜像:
阿里云
执行脚本:
./load_images.sh
启动Kubernates(等待几分钟):
注意:
如果一直处于 is starting状态,请执行一下操作:
rm -rf ~/Library/Group\ Containers/group.com.docker/pki/
rm -rf ~/.kube
然后重启docker再次尝试。
验证集群状态:
kubectl cluster-info
kubectl get nodes
如果勾选了Show system containers选项,可以使用docker ps命令看到自动安装的Kubernates相关容器:
Docker也为我们安装了kubectl控制命令:
kubectl get namespaces
配置Kubernates控制台
进入k8s-for-docker-desktop目录,执行:
kubectl create -f kubernetes-dashboard.yaml
如果被墙了,将DNS设置为8.8.8.8
重试即可。
服务安装完毕后可以看看部署的容器与服务:
kubectl get deployments --namespace kube-system
kubectl get services --namespace kube-system
在Dashboard启动完毕后,可以使用kubectl提供的Proxy服务来访问该面板:
kubectl proxy
# 访问如下地址:
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login
选token登录
token生成:
kubectl -n kubernetes-dashboard create token kubernetes-dashboard
选择Kubeconfig文件,路径如下:
$HOME/.kube/config
测试
Docker Compose配置文件如下:
version: '3.3'
services:
web:
build: web
image: dockerdemos/lab-web
volumes:
- "./web/static:/static"
ports:
- "80:80"
words:
build: words
image: dockerdemos/lab-words
deploy:
replicas: 5
endpoint_mode: dnsrr
resources:
limits:
memory: 16M
reservations:
memory: 16M
db:
build: db
image: dockerdemos/lab-db
然后使用stack命令创建应用栈:
docker stack deploy --compose-file stack.yml demo
应用栈创建完毕后,可以使用kubetl查看创建爱你的Pods:
kubectl get pods
查看部署的集群与服务:
可以看到这里的web有所谓的LoadBalancer类型,即可以对外提供服务。最后还可以用stack与kubectl命令来删除应用:
docker stack remove demo
kubectl delete deployment kubernetes-dashboard --namespace kube-system