在自己的域名網站安裝Kubernetes並暴露服務

banq發表於2018-09-30
將你的App部署到Kubernetes,然後將域名指向Kubernetes類的應用,這是不是很酷?

在開始之前,請確保做好準備工作:
1. 部署好Kubernetes叢集並可訪問
2. 你的應用*在Kubernetes群集中執行
3. 註冊域名
4. 安裝好Helm

以下是將域名與你的服務連線起來的粗略步驟:

1. 建立Ingress資源
2. 部署Ingress控制器
3. 更新域名記錄以指向群集

Kubernetes的Ingress資源管理是對叢集內執行的應用程式暴露給外部訪問的。使用ingress,可以定義規則,告訴Kubernetes如何將外部流量路由到你的應用程式。以下是Ingress資源的示例:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-ingress
  annotations:
     kubernetes.io/ingress.class: nginx
spec:
  rules:
  - host: www.mycoolapp.mydomain.com
    http:
      paths:
      - path: /
        backend:
          serviceName: mycoolapp
          servicePort: 80
<p class="indent">

但是,僅此資源還不夠 - 您還需要一個知道如何引導流量的控制器。這裡使用NGINX Ingress控制器,我們將使用Helm來部署nginx-ingress圖表,如下所示:

helm install stable/nginx-ingress
<p class="indent">

上面的命令負責安裝NGINX控制器和預設後端。預設後端指向的“app”,NGINX控制器提供負載平衡器的服務 - 將我們域名指向它。

部署NGINX入口控制器後,讓我們透過執行此命令來確定叢集的IP地址:

kubectl get services --all-namespaces
<p class="indent">

上面的命令將列出在所有名稱空間中執行的所有Kubernetes服務。您感興趣的是LoadBalancer型別的任何服務以及具有外部IP集的任何服務(它通常是相同的服務)

在服務列表中,*nginx-ingress-controller字樣的服務你所需要的。這是你將域名指向的IP地址。

現在是修改域名記錄,建立一個A和CNAME DNS記錄以將域(主機)指向群集IP即可。

Expose a Kubernetes service on your own custom dom

相關文章