在 Mac 的 Docker Desktop 中運行 K8s

原文地址:https://alphahinex.github.io/2020/11/08/run-k8s-in-mac-docker-desktop/


description: "想變成 running 并不容易"
date: 2020.11.08 10:34
categories:
- K8s
tags: [K8s, Docker Desktop]
keywords: Docker Desktop for Mac, K8s, starting, running, pki, mirror


Docker Desktop for MacDocker Community Edition 18.06.0-ce-mac70 2018-07-25 版本起丈攒,添加了對 Kubernetes 的支持,可以方便的在 Mac 上運行一個單節(jié)點的 K8s 集群啄糙。

在 Docker Desktop 的 Preferences 中的 Kubernetes 頁面里,提供了一個 Enable Kubernetes 選框代嗤,點擊之后即可在 Mac 上啟動 K8s菱农。

然而點擊之后,就沒有然后了鉴竭,一直是下圖這個狀態(tài):

starting

此問題的主要原因歧譬,是 K8s 運行所需的一些 k8s.gcr.io 下的鏡像,無法直接下載得到搏存。

準(zhǔn)備鏡像

配置鏡像服務(wù)

Preferences => Docker Engine 里瑰步,可以配置 registry-mirrors,國內(nèi)可用的一些鏡像服務(wù)有:

另外缩焦,中國科大還有 GCRQuay 的鏡像。

可添加多個鏡像责静,如:

{
  "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 應(yīng)用配置袁滥。

下載鏡像

阿里云容器服務(wù)的 GitHub 組織 下,有個 k8s-for-docker-desktop 倉庫即為解決此問題而存在灾螃。解決的方式為:先從阿里云下載所需的鏡像副本至本地题翻,再將鏡像 tag 修改至 k8s.gcr.io 下。

以如下軟件版本為例:

versions

可使用 當(dāng)前 master 分支最新的內(nèi)容腰鬼,直接執(zhí)行 load_images.sh 完成鏡像的下載及 tag 修改嵌赠。

下載之后的鏡像包括如下 8 個靴拱,與 images.properties 中內(nèi)容一一對應(yīng):

$ docker images
REPOSITORY                                                       TAG                                              IMAGE ID            CREATED             SIZE
k8s.gcr.io/kube-proxy                                            v1.19.3                                          cdef7632a242        3 weeks ago         118MB
k8s.gcr.io/kube-apiserver                                        v1.19.3                                          a301be0cd44b        3 weeks ago         119MB
k8s.gcr.io/kube-controller-manager                               v1.19.3                                          9b60aca1d818        3 weeks ago         111MB
k8s.gcr.io/kube-scheduler                                        v1.19.3                                          aaefbfa906bd        3 weeks ago         45.7MB
k8s.gcr.io/etcd                                                  3.4.13-0                                         0369cf4303ff        2 months ago        253MB
k8s.gcr.io/coredns                                               1.7.0                                            bfe3a36ebd25        4 months ago        45.2MB
k8s.gcr.io/pause                                                 3.2                                              80d28bedfe5d        8 months ago        683kB
quay.io/kubernetes-ingress-controller/nginx-ingress-controller   0.26.1                                           29024c9c6e70        13 months ago       483MB

其他版本?

如果使用的不是上圖中的版本猾普,且 k8s-for-docker-desktop 倉庫還沒有支持該版本時袜炕,可根據(jù) K8s 版本通過如下方式獲得 images.properties 中對應(yīng)版本信息:

安裝 K8s 對應(yīng)版本的 kubeadm ,之后運行:

# 替換 ${KUBERNETES_VERSION} 為所使用的 K8s 版本
$ ./kubeadm config images list --kubernetes-version=${KUBERNETES_VERSION}

可得到類似如下信息:

k8s.gcr.io/kube-apiserver:v1.19.3
k8s.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 中的 內(nèi)容 初家,或直接從 這個 定期執(zhí)行的 GitHub Actions 記錄中找到對應(yīng)版本執(zhí)行時的輸出信息偎窘,如 v1.19.3 記錄

根據(jù)所得到的對應(yīng)版本鏡像信息溜在,修改 images.properties 文件中內(nèi)容陌知,再執(zhí)行 load_images.sh 即可。

依舊 Starting 掖肋?

在完成鏡像下載并重啟 Docker Desktop 之后仆葡,K8s 依舊停留在 Starting 狀態(tài)。

通過

$ 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"

查看日志志笼,發(fā)現(xiàn)不斷輸出如下內(nèi)容:

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/

之后再重啟并觀察日志,上述問題不再出現(xiàn)纫溃,并且新下載了 3 個 desktop 相關(guān)的鏡像:

$ docker images | grep desktop
docker/desktop-kubernetes                                        kubernetes-v1.19.3-cni-v0.8.5-critools-v1.17.0   7f85afe431d8        3 weeks ago         285MB
docker/desktop-storage-provisioner                               v1.1                                             e704287ce753        7 months ago        41.8MB
docker/desktop-vpnkit-controller                                 v1.0                                             79da37e5a3aa        8 months ago        36.6MB

等待一會之后腰涧,終于變成 Running 狀態(tài)了!

running

Tips: 如果還是 Starting 狀態(tài)紊浩,可以嘗試將當(dāng)前安裝的 Docker Desktop 環(huán)境都清理掉窖铡,全新安裝一個穩(wěn)定版本,可能就不會有奇怪的問題了坊谁。

另外费彼,在沒開啟 Preferences => Kubernetes 中的 Show system containers (advanced) 選項時,docker ps 是看不到 K8s 相關(guān)的容器的口芍。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末箍铲,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子阶界,更是在濱河造成了極大的恐慌虹钮,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件膘融,死亡現(xiàn)場離奇詭異,居然都是意外死亡祭玉,警方通過查閱死者的電腦和手機氧映,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來脱货,“玉大人岛都,你說我怎么就攤上這事律姨。” “怎么了臼疫?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵择份,是天一觀的道長。 經(jīng)常有香客問我烫堤,道長荣赶,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任鸽斟,我火速辦了婚禮拔创,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘富蓄。我一直安慰自己剩燥,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布立倍。 她就那樣靜靜地躺著灭红,像睡著了一般。 火紅的嫁衣襯著肌膚如雪口注。 梳的紋絲不亂的頭發(fā)上比伏,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天,我揣著相機與錄音疆导,去河邊找鬼赁项。 笑死,一個胖子當(dāng)著我的面吹牛澈段,可吹牛的內(nèi)容都是我干的悠菜。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼败富,長吁一口氣:“原來是場噩夢啊……” “哼悔醋!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起兽叮,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤芬骄,失蹤者是張志新(化名)和其女友劉穎继榆,沒想到半個月后金拒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體濒析,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡精绎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年当娱,在試婚紗的時候發(fā)現(xiàn)自己被綠了胧沫。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片啊终。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡辈灼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蒲牧,到底是詐尸還是另有隱情撇贺,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布冰抢,位于F島的核電站松嘶,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏挎扰。R本人自食惡果不足惜翠订,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鼓鲁。 院中可真熱鬧蕴轨,春花似錦、人聲如沸骇吭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽燥狰。三九已至棘脐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間龙致,已是汗流浹背蛀缝。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留目代,地道東北人屈梁。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像榛了,于是被迫代替她去往敵國和親在讶。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內(nèi)容