您好,登錄后才能下訂單哦!
這篇文章主要介紹“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。
一、部署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
安裝nginx-ingress
1、執(zhí)行helm install命令
helm install stable/nginx-ingress --name my-nginx --set rbac.create=true
--name:為安裝的應(yīng)用命名
2、查看helm 列表
3、查看ingress的service
kuberctl get svc
三、部署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
為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
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>
免責(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)容。