溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Kubernetes集群部署?Nginx-ingress Controller的過程

發(fā)布時間:2021-09-10 10:56:03 來源:億速云 閱讀:227 作者:chen 欄目:云計算

這篇文章主要介紹“Kubernetes集群部署?Nginx-ingress Controller的過程”,在日常操作中,相信很多人在Kubernetes集群部署?Nginx-ingress Controller的過程問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Kubernetes集群部署?Nginx-ingress Controller的過程”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

Kubernetes提供了兩種內(nèi)建的云端負載均衡機制用于發(fā)布公共應(yīng)用,一種是工作于傳輸層的Service資源,它實現(xiàn)的是TCP負載均衡器;另一種是Ingress資源,它實現(xiàn)的是HTTP(S)負載均衡器。

今天我們來重點討論Ingress資源。HTTP(S)負載均衡器是應(yīng)用層負載均衡機制的一種,支持根據(jù)環(huán)境做出更好的調(diào)度決策。與傳輸層調(diào)度器相比,它提供了可自定義URL映射和TLS等功能,并支持多種健康狀態(tài)檢查機制。

Ingress是Kubernetes API的標(biāo)準(zhǔn)資源類型之一,它其實就是一組基于DNS名稱或URL路徑把請求轉(zhuǎn)發(fā)至指定的Service資源的規(guī)則,用于將集群外部的請求流量轉(zhuǎn)發(fā)至集群內(nèi)部完成服務(wù)發(fā)布。然而,Ingress資源自身并不能進行“流量穿透”,它僅是一組路由規(guī)則的集合,這些規(guī)則要想真正發(fā)揮作用還需要其他功能的輔助,如監(jiān)聽某套接字,然后根據(jù)這些規(guī)則的匹配機制路由請求流量。這種能夠為Ingress資源監(jiān)聽套接字并轉(zhuǎn)發(fā)流量的組件稱為Ingress Controller。

Kubernetes集群部署?Nginx-ingress Controller的過程

一、部署Helm

Helm是一個包管理工具, 把Kubernetes資源(比如deployments、services或 ingress等) 打包到一個chart中,方便將其chart保存到chart倉庫用來存儲和分享, Helm支持發(fā)布應(yīng)用配置的版本管理, 使發(fā)布可配置, 簡化了Kubernetes部署應(yīng)用的版本控制、打包、發(fā)布、刪除、更新等操作。

  • 安裝Helm

1、官網(wǎng)下載Helm二進制文件,當(dāng)前最新版本為2.14.0;

wget https://storage.googleapis.com/kubernetes-helm/helm-v2.14.0-linux-amd64.tar.gz

2、解壓縮文件并將目錄中二進制文件移動到/usr/local/bin/下;

tar -zxvf helm-v2.14.0-linux-amd64.tar.gz mv linux-amd64/helm /usr/local/bin/helm

3、為Tiller添加權(quán)限,詳見Role-based Access Control,新建rbac-config.yaml,內(nèi)容如下:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: tiller
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: tiller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: tiller
    namespace: kube-system

執(zhí)行create命令:

kubectl create -f rbac-config.yaml

4、初始化 Helm 并安裝 Tiller 服務(wù)

helm init --upgrade --service-account tiller --tiller-image sapcc/tiller:v2.14.0

5、查看helm版本,出現(xiàn)以下信息,確認(rèn)安裝成功:

Client: &version.Version{SemVer:"v2.14.0", GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.14.0", GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6", GitTreeState:"clean"}

6、chart列表

helm repo update

7、測試chart是否可用

helm search

二、使用Helm安裝nginx-ingress

  • 安裝nginx-ingress

1、執(zhí)行helm install命令

helm install stable/nginx-ingress --name my-nginx --set rbac.create=true

--name:為安裝的應(yīng)用命名

2、查看helm 列表

Kubernetes集群部署?Nginx-ingress Controller的過程

3、查看ingress的service

kuberctl get svc

Kubernetes集群部署?Nginx-ingress Controller的過程

三、部署nginx實例應(yīng)用

  • 部署nginx的deployment

1、編輯nginx-app.yaml文件

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginxdemos/hello:latest
        ports:
        - containerPort: 80

2、執(zhí)行create創(chuàng)建命令

kubectl  create  -f  nginx-app.yaml

3、檢測deployment部署情況

kubectl  get deployment  nginx-deployment
  • 為nginx的deployment創(chuàng)建service

1、執(zhí)行expose命令

kubectl expose deployment nginx-deployment --target-port=80 --port=80 --protocol=TCP --name=jdc-test

2、確認(rèn)服務(wù)創(chuàng)建完成

kubectl  get  svc

Kubernetes集群部署?Nginx-ingress Controller的過程

  • 為service創(chuàng)建ingress

1、編輯 ingress-nginx.yaml文件

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: jdc-ingress-controller-test
  annotations:
    metadata.annotations.kubernetes.io/ingress.class: "nginx">

2、執(zhí)行create創(chuàng)建命令

kubectl  create –f  ingress-nginx.yaml

3、查看ingress部署情況

kubectl  get ingress

Kubernetes集群部署?Nginx-ingress Controller的過程

4、在客戶端添加靜態(tài)解析,公網(wǎng)IP是nginx controller的service公網(wǎng)IP,域名是ingress的host:test.nginx-ingress.jdc-test

5、瀏覽器輸入url http://test.nginx-ingress.jdc-test/jdc-test訪問測試

到此,關(guān)于“Kubernetes集群部署?Nginx-ingress Controller的過程”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI