jre for mac 删除_在 Mac 的 Docker Desktop 中运行 K8s
Docker Desktop for Mac 從 Docker Community Edition 18.06.0-ce-mac70 2018-07-25 版本起,添加了對 Kubernetes 的支持,可以方便的在 Mac 上運行一個單節點的 K8s 集群。
在 Docker Desktop 的 Preferences 中的 Kubernetes 頁面里,提供了一個 Enable Kubernetes 選框,點擊之后即可在 Mac 上啟動 K8s。
然而點擊之后,就沒有然后了,一直是下圖這個狀態:
此問題的主要原因,是 K8s 運行所需的一些 k8s.gcr.io 下的鏡像,無法直接下載得到。
準備鏡像
配置鏡像服務
在 Preferences => Docker Engine 里,可以配置 registry-mirrors,國內可用的一些鏡像服務有:
中國科大:https://docker.mirrors.ustc.edu.cn / https://ustc-edu-cn.mirror.aliyuncs.com
阿里云:https://xxxxx.mirror.aliyuncs.com,可使用阿里云賬號在 這里 獲得
網易云:https://hub-mirror.c.163.com
DaoCloud:http://f1361db2.m.daocloud.io
另外,中國科大還有 GCR 和 Quay 的鏡像。
可添加多個鏡像,如:
{ "registry-mirrors": [ "https://xxxxx.mirror.aliyuncs.com", "https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com", "http://f1361db2.m.daocloud.io" ], "debug": true, "experimental": true}之后點擊 Apply & Restart 應用配置。
下載鏡像
在 阿里云容器服務的 GitHub 組織 下,有個 k8s-for-docker-desktop 倉庫即為解決此問題而存在。解決的方式為:先從阿里云下載所需的鏡像副本至本地,再將鏡像 tag 修改至 k8s.gcr.io 下。
以如下軟件版本為例:
可使用 當前 master 分支最新的內容,直接執行 load_images.sh 完成鏡像的下載及 tag 修改。
下載之后的鏡像包括如下 8 個,與 images.properties 中內容一一對應:
$ docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEk8s.gcr.io/kube-proxy v1.19.3 cdef7632a242 3 weeks ago 118MBk8s.gcr.io/kube-apiserver v1.19.3 a301be0cd44b 3 weeks ago 119MBk8s.gcr.io/kube-controller-manager v1.19.3 9b60aca1d818 3 weeks ago 111MBk8s.gcr.io/kube-scheduler v1.19.3 aaefbfa906bd 3 weeks ago 45.7MBk8s.gcr.io/etcd 3.4.13-0 0369cf4303ff 2 months ago 253MBk8s.gcr.io/coredns 1.7.0 bfe3a36ebd25 4 months ago 45.2MBk8s.gcr.io/pause 3.2 80d28bedfe5d 8 months ago 683kBquay.io/kubernetes-ingress-controller/nginx-ingress-controller 0.26.1 29024c9c6e70 13 months ago 483MB其他版本?
如果使用的不是上圖中的版本,且 k8s-for-docker-desktop 倉庫還沒有支持該版本時,可根據 K8s 版本通過如下方式獲得 images.properties 中對應版本信息:
安裝 K8s 對應版本的 kubeadm ,之后運行:
# 替換 ${KUBERNETES_VERSION} 為所使用的 K8s 版本$?./kubeadm?config?images?list?--kubernetes-version=${KUBERNETES_VERSION}可得到類似如下信息:
k8s.gcr.io/kube-apiserver:v1.19.3k8s.gcr.io/kube-controller-manager:v1.19.3
k8s.gcr.io/kube-scheduler:v1.19.3
k8s.gcr.io/kube-proxy:v1.19.3
k8s.gcr.io/pause:3.2
k8s.gcr.io/etcd:3.4.13-0
k8s.gcr.io/coredns:1.7.0
也可參照這個 entrypoint.sh 中的 內容 ,或直接從 這個 定期執行的 GitHub Actions 記錄中找到對應版本執行時的輸出信息,如 v1.19.3 記錄。
根據所得到的對應版本鏡像信息,修改 images.properties 文件中內容,再執行 load_images.sh 即可。
依舊 Starting ?
在完成鏡像下載并重啟 Docker Desktop 之后,K8s 依舊停留在 Starting 狀態。
通過
$ pred='process matches ".*(ocker|vpnkit).*"|| (process in {"taskgated-helper", "launchservicesd", "kernel"} && eventMessage contains[c] "docker")'/usr/bin/log stream --style syslog --level=debug --color=always --predicate "$pred"
查看日志,發現不斷輸出如下內容:
2020-11-07 01:01:48.307809+0800 localhost com.docker.driver.amd64-linux[2646]: cannot get lease for master node: an error on the server ("") has prevented the request from succeeding (get leases.coordination.k8s.io docker-desktop)2020-11-07 01:01:48.308417+0800 localhost com.docker.backend[1833]: external: POST /events 200 "DockerDesktopGo" ""
2020-11-07 01:01:49.231052+0800 localhost com.docker.driver.amd64-linux[2646]: (libsystem_info.dylib) [com.apple.network.libinfo:getaddrinfo] nat64_v4_requires_synthesis(127.0.0.1) == false
按照 這里 及 這里 提到的方式,刪除掉 pki 文件夾:
$ rm -rf ~/Library/Group\ Containers/group.com.docker/pki/之后再重啟并觀察日志,上述問題不再出現,并且新下載了 3 個 desktop 相關的鏡像:
$ docker images | grep desktopdocker/desktop-kubernetes kubernetes-v1.19.3-cni-v0.8.5-critools-v1.17.0 7f85afe431d8 3 weeks ago 285MBdocker/desktop-storage-provisioner v1.1 e704287ce753 7 months ago 41.8MBdocker/desktop-vpnkit-controller v1.0 79da37e5a3aa 8 months ago 36.6MB等待一會之后,終于變成 Running 狀態了!
Tips: 如果還是 Starting 狀態,可以嘗試將當前安裝的 Docker Desktop 環境都清理掉,全新安裝一個穩定版本,可能就不會有奇怪的問題了。
另外,在沒開啟?Preferences?=>?Kubernetes?中的?Show system containers (advanced)?選項時,docker ps?是看不到 K8s 相關的容器的。
總結
以上是生活随笔為你收集整理的jre for mac 删除_在 Mac 的 Docker Desktop 中运行 K8s的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html5 烟雾,jQuery烟雾背景发
- 下一篇: 字符串反转python_Python实现