Linux中國

如何在 Mac 上配置 Kubernetes

Mac 用戶可使用 MicroK8s 運行 Kubernetes 環境,進而開發、測試應用。通過下面的步驟可輕鬆搭建此環境。

MicroK8s 是一個 Ubuntu 推出的一個本地的 Kubernetes 版本。它是一個輕量級的 snap 應用,可安裝到 PC 上作為一個單節點集群使用。儘管 MicroK8s 僅針對 Linux 構建,但是也可以在 Mac 上啟動 Ubuntu VM 來實現。

MicroK8s 可在 Ubuntu 和任意支持 snap 的 OS 上運行全部原生的 K8s 服務。這對於開發應用,創建簡單的 K8s 集群和本地微服務開發非常有幫助,所有的開發工作最終都還是需要部署的。

MicroK8s 提供另一個級別的可靠性因為它提供了與當前 Kubernetes(以下簡稱 Kubernetes 為 K8s)版本一致的開發環境。 在最新的上游 K8s 發布後的一周內,在 Ubuntu 上即可使用。

在 Mac 上配置 Kubernetes

K8s 和 MicroK8s 都需要一個 Linux 內核來工作,因此二者都需要 Ubuntu 環境。Mac 用戶可使用 Multipass,此工具被設計為方便用戶在 Mac、Windows、Linux 上開啟 Ubuntu VM(虛擬)環境。

下面的教程將介紹在 Mac 上配置 Multipass 和運行 K8s。

步驟1:使用 Multipass 為 Mac 安裝一個 VM

最新的 Multipass 的程序包可在 GitHub 上找到,雙擊 .pkg 即可安裝。用 MicroK8s 來啟動一個 VM:

multipass launch --name microk8s-vm --mem 4G --disk 40G  
multipass exec microk8s-vm -- sudo snap install microk8s --classic       
multipass exec microk8s-vm -- sudo iptables -P FORWARD ACCEPT       

確保為主機保留足夠的資源。上述命令表示我們創建了一個名字為 microk8s-vm 的 VM,分配了 4GB 內存和 40GB 硬碟。

使用以下命令來查看 VM 分配的 IP 地址:(記一下下面的 IP,我們將從此開始)

multipass list  
Name         State     IPv4            Release     
microk8s-vm  RUNNING   192.168.64.1   Ubuntu 18.04 LTS                                                              

步驟2:在 VM 上與 MicroK8s 互動

可使用以下 3 種方式:

命令行,用 Multipass 的 shell 提示符:

multipass shell microk8s-vm                                                                                     

multipass exec 來執行一個命令(輸入後無提示):

multipass exec microk8s-vm -- /snap/bin/microk8s.status                             

調用運行在 VM 的 K8s API 伺服器,這裡使用 MicroK8s 的 kubeconfig 文件和一個本地的安裝的 kubectl 來訪問 VM 內的 K8s,運行以下命令:

multipass exec microk8s-vm -- /snap/bin/microk8s.config > kubeconfig     

下一步,在本地主機安裝 kubectl,然後使用 kubeconfig:

kubectl --kubeconfig=kubeconfig get all --all-namespaces            
NAMESPACE  NAME  TYPE  CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE          
Default service/kubernetes ClusterIP 10.152.183.1 <none> 443/TCP 3m12s

步驟 3:用 Mutlpass 服務訪問 VM 並開啟 MicroK8s 組件

配置基礎的 MicroK8s 組件是開啟 Grafana 儀錶,下面我們將展示一步開啟 Grafana,監視和分析一個 MicroK8s 實例。可執行以下命令:

multipass exec microk8s-vm -- /snap/bin/microk8s.enable dns dashboard  
Enabling DNS  
Applying manifest  
service/kube-dns created  
serviceaccount/kube-dns created  
configmap/kube-dns created  
deployment.extensions/kube-dns created  
Restarting kubelet  
DNS is enabled  
Enabling dashboard  
secret/kubernetes-dashboard-certs created  
serviceaccount/kubernetes-dashboard created  
deployment.apps/kubernetes-dashboard created  
service/kubernetes-dashboard created  
service/monitoring-grafana created  
service/monitoring-influxdb created  
service/heapster created  
deployment.extensions/monitoring-influxdb-grafana-v4 created  
serviceaccount/heapster created  
configmap/heapster-config created  
configmap/eventer-config created  
deployment.extesions/heapster-v1.5.2 created  
dashboard enabled

接下來,用下面命令檢查部署進程:

multipass exec microk8s-vm -- /snap/bin/microk8s.kubectl get all --all-namespaces                                                                                                                        

返回信息如下:

一旦所有的必要服務已開啟,接下來使用以下的鏈接訪問儀錶。命令如下:

multipass exec microk8s-vm -- /snap/bin/microk8s.kubectl cluster-info    
Kubernetes master is running at https://127.0.0.1:16443  
Heapster is running at https://127.0.0.1:16443/api/v1/namespaces/kube-system/services/heapster/proxy  
KubeDNS is running at https://127.0.0.1:16443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy  
Grafana is running at https://127.0.0.1:16443/api/v1/namespaces/kube-system/services/monitoring-grafana/proxy  
InfluxDB is running at https://127.0.0.1:16443/api/v1/namespaces/kube-system/services/monitoring-influxdb:http/proxy  

To further debug and diagnose cluster problems, use &apos;kubectl cluster-info dump&apos;.

如果我們在 VM 內,可以用此鏈接來訪問 Grafana 儀錶。不過,我們可以通過代理在主機上訪問。

multipass exec microk8s-vm -- /snap/bin/microk8s.kubectl proxy --address=&apos;0.0.0.0&apos; --accept-hosts=&apos;.*&apos;   
Starting to serve on [::][::]:8001

保持終端運行狀態,記一下埠號(8001),我們在下一步需要用到。要訪問 Grafana 儀錶,我們需要修改 VM 內儀錶的鏈接:

  • 使用 VM 的 IP 替換 127.0.0.1(multipass info microk8s-vm
  • 將埠(16443)替換為代理埠 8001。
  • 在瀏覽器內輸入這個鏈接地址:https://127.0.0.1:8001/api/v1/namespaces/kube-system/services/monitoring-grafana/proxy,你將看到 Grafana 儀錶,如下圖:

總結

使用 MicroK8s 在本地開發和測試應用,將使得團隊在部署上更快,這對於開發者和 DevOp 團隊來說是非常有價值和意義的。


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    這個站點使用 Akismet 來減少垃圾評論。了解你的評論數據如何被處理

    More in:Linux中國

    Linux中國

    捐贈 Let&apos;s Encrypt,共建安全的互聯網

    隨著 Mozilla、蘋果和谷歌對沃通和 StartCom 這兩家 CA 公司處罰落定,很多使用這兩家 CA 所簽發證書的網站紛紛尋求新的證書籤發商。有一個非盈利組織可以為大家提供了免費、可靠和安全的 SSL 證書服務,這就是 Let's Encrypt 項目。現在,它需要您的幫助
    Linux中國

    關於Linux防火牆iptables的面試問答

    Nishita Agarwal是Tecmint的用戶,她將分享關於她剛剛經歷的一家公司(印度的一家私人公司Pune)的面試經驗。在面試中她被問及許多不同的問題,但她是iptables方面的專家,因此她想分享這些關於iptables的問題和相應的答案給那些以後可能會進行相關面試的人。 所有的問題和相應的答案都基於Nishita Agarwal的記憶並經過了重寫。 嗨,朋友!我叫Nishita Agarwal。我已經取得了理學學士學位,我的專業集中在UNIX和它的變種(BSD,Linux)。它們一直深深的吸引著我。我在存儲方面有1年多的經驗。我正在尋求職業上的變化,並將供職於印度的P
    Linux中國

    Lets Encrypt 已被所有主流瀏覽器所信任

    旨在讓每個網站都能使用 HTTPS 加密的非贏利組織 Lets Encrypt 已經得了 IdenTrust的交叉簽名,這意味著其證書現在已經可以被所有主流的瀏覽器所信任。從這個裡程碑事件開始,訪問者訪問使用了Lets Encrypt 證書的網站不再需要特別配置就可以得到 HTTPS 安全保護了。 Lets Encrypt 的兩個中級證書 ...