Docker Desktop 可以方便的启用 Kubernetes 集群, 为学习 Kubernetes 提供了极大的便利, 但是由于众所周知的原因, 国内的网络下不能很方便的下载 Kubernetes 集群所需要的镜像文件, 导致集群启用失败. 这里提供了一个简单的方法, 利用阿里云的镜像服务, 预先下载镜像文件, 以方便 Kubernetes 学习和使用。
说明:
- 当前在
Docker Desktop (Mac) Version 2.0.5.0 (35318) Channel: edge (Kubernetes: v1.14.3)上经过测试可用 - 使用
Kubeadm在Ubuntu上安装Kubernetes请查看 kubernetes-for-china
-
设置
Docker中国官方镜像加速 registry mirrorhttps://registry.docker-cn.com
- 预先从阿里云
Docker镜像下载Kubernetes所需要的镜像, 可以通过修改 ./images 文件定制你自己需要的镜像
$ ./load_images.sh- 在
Docker for Mac设置中启用Kubernetes选项, 并等待一会儿,直到Kubernetes开始运行。
- 可选的步骤: 切换
Kubernetes运行上下文至docker-desktop
# 一般只有在之前用其他方式运行过Kubernetes才需要
$ kubectl config use-context docker-desktop- 验证
Kubernetes集群状态
$ kubectl cluster-info
$ kubectl get nodes
$ kubectl describe node- 部署
Kubernetes dashboard
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
# 开启本机访问代理
$ kubectl proxy通过下面的连接访问 Dashboard:
http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
创建Dashboard管理员用户并用Token登陆:
https://github.com/kubernetes/dashboard/wiki/Creating-sample-user
# 用 homebrew 安装 Helm
$ brew install kubernetes-helm
# 初始化本地 CLI 并 将 Tiller 安装到 Kubernetes cluster
$ helm init
# 更新本地 charts repo
$ helm repo update
# 安装 mysql chart
$ helm install --name my-mysql stable/mysql
# 删除 mysql
$ helm delete my-mysql
# 删除 mysql 并释放该名字以便后续使用
$ helm delete --purge my-mysql地址1 registry.aliyuncs.com/google_containers
地址2 registry.cn-hangzhou.aliyuncs.com/google_containers
这个域名下同步了很多谷歌镜像,比如说要下载kube-proxy-amd64:v1.11.3这个镜像,可以使用docker pull mirrorgooglecontainers/kube-proxy-amd64:v1.11.3来进行下载,下载以后对镜像重新打标签:
docker tag docker.io/mirrorgooglecontainers/kube-proxy-amd64:v1.11.3 k8s.gcr.io/kube-proxy-amd64:v1.11.3
项目地址: https://github.com/zhangguanzhang/gcr.io
[centos@k8s-master tekton]$ curl -s https://zhangguanzhang.github.io/bash/pull.sh | bash -s search gcr.io
cloud-builders
cloud-datalab
cloudsql-docker
distroless
google-appengine
google-samples
google_containers
google_samples
heptio-images
istio-release
k8s-minikube
kaniko-project
knative-releases
knative-samples
kubeflow-images-public
kubernetes-e2e-test-images
kubernetes-helm
linkerd-io
runconduit
spinnaker-marketplace
tf-on-k8s-dogfood
[centos@k8s-master tekton]$ curl -s https://zhangguanzhang.github.io/bash/pull.sh | bash -s search gcr.io/google_containers
addon-builder
addon-resizer-amd64
addon-resizer-arm
addon-resizer-arm64
addon-resizer-ppc64le
addon-resizer-s390x
addon-resizer
aggregator
alpine-iptables-amd64
alpine-iptables-arm
alpine-iptables-arm64
alpine-with-bash
apparmor-loader
busybox
cadvisor
cassandra-e2e-test
cassandra
check-metadata-concealment
cloud-controller-manager-amd64
cloud-controller-manager-arm
cloud-controller-manager-arm64
cloud-controller-manager-ppc64le
cloud-controller-manager-s390x
cloud-controller-manager
cloudsql-authenticator
cluster-autoscaler
cluster-proportional-autoscaler-amd64
cluster-proportional-autoscaler-arm
cluster-proportional-autoscaler-arm64
cluster-proportional-autoscaler-ppc64le
clusterapi-tester
clusterregistry
conformance-amd64
conformance-arm
conformance-arm64
conformance-ppc64le
conformance-s390x
conformance
coredns
...
[centos@k8s-master tekton]$ curl -s https://zhangguanzhang.github.io/bash/pull.sh | bash -s search gcr.io/google_containers/coredns
1.0.1
1.0.1__amd64_linux
1.0.1__arm64_linux
1.0.1__arm_linux
1.0.1__ppc64le_linux
1.0.1__s390x_linux
1.0.6
1.0.6__amd64_linux
1.0.6__arm64_linux
1.0.6__arm_linux
1.0.6__ppc64le_linux
1.0.6__s390x_linux
1.1.3
1.1.3__amd64_linux
1.1.3__arm64_linux
1.1.3__arm_linux
1.1.3__ppc64le_linux
1.1.3__s390x_linux
1.2.2
1.2.3
1.2.4
1.2.6
1.3.0
1.3.1
curl -s https://zhangguanzhang.github.io/bash/pull.sh | bash -s -- gcr.io/google_containers/kube-apiserver-amd64:v1.11.3

