精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網站建設資訊

NEWS

網站建設資訊

Kubernetes中ingress實現虛擬主機的步驟-創新互聯

環境介紹

主機IP地址服務
master192.168.1.21k8s
node01192.168.1.22k8s
node02192.168.1.23k8s

1、首先確定要運行ingress-nginx-controller服務。

創新互聯公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:網站建設、成都網站建設、企業官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯網時代的海晏網站設計、移動媒體設計的需求,幫助企業找到有效的互聯網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!

在gitbub上找到所需的ingress的yaml文件

Kubernetes中ingress實現虛擬主機的步驟

Kubernetes中ingress實現虛擬主機的步驟

Kubernetes中ingress實現虛擬主機的步驟
Kubernetes中ingress實現虛擬主機的步驟

4. master下載

[root@master ingress]# wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.29.0/deploy/static/mandatory.yaml

5. 修改 mandatory.yaml 文件

[root@master ingress]# vim mandatory.yaml
    hostNetwork: true  #213

Kubernetes中ingress實現虛擬主機的步驟

(1)執行一下
[root@master ingress]# kubectl apply -f mandatory.yaml
(2)查看一下
[root@master ingress]# kubectl get pod -n ingress-nginx

Kubernetes中ingress實現虛擬主機的步驟

2、將ingress-nginx-controller暴露為一個Service資源對象。

[root@master yaml]# vim service-nodeport.yaml 

apiVersion: v1
kind: Service
metadata:
  name: ingress-nginx
  namespace: ingress-nginx
  labels:
   app.kubernetes.io/name: ingress-nginx
   app.kubernetes.io/part-of: ingress-nginx
spec:
  type: NodePort
  ports:
   - name: http
    port: 80
    targetPort: 80
    protocol: TCP
   - name: https
    port: 443
    targetPort: 443
    protocol: TCP
  selector:
   app.kubernetes.io/name: ingress-nginx
   app.kubernetes.io/part-of: ingress-nginx

---
(1)執行一下
[root@master ingress]# kubectl apply -f service-nodeport.yaml
(2)查看一下
[root@master ingress]# kubectl get svc -n ingress-nginx

Kubernetes中ingress實現虛擬主機的步驟

3、創建一個deployment資源,和一個service資源, 并相互關聯。

[root@master yaml]# vim deploy1.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: deploy1
spec:
  replicas: 2
  template:
   metadata:
    labels:
     app: nginx1
   spec:
    containers:
    - name: nginx1
     image: nginx
---
apiVersion: v1
kind: Service
metadata:
  name: svc-1
spec:
  selector:
   app: nginx1
  ports:
   - port: 80
    targetPort: 80
執行一下
[root@master yaml]# kubectl apply -f deploy1.yaml
查看一下
[root@master yaml]# kubectl get pod

Kubernetes中ingress實現虛擬主機的步驟

[root@master yaml]# kubectl get svc

Kubernetes中ingress實現虛擬主機的步驟

然后復制deploy1.yaml資源工創建另外”一對“服務。

[root@master yaml]# vim deploy2.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: deploy2
spec:
  replicas: 2
  template:
   metadata:
    labels:
     app: nginx2
   spec:
    containers:
    - name: nginx2
     image: nginx
---
apiVersion: v1
kind: Service
metadata:
  name: svc-2
spec:
  selector:
   app: nginx2
  ports:
   - port: 80
    targetPort: 80
執行一下
[root@master yaml]# kubectl apply -f deploy2.yaml
查看一下
[root@master yaml]# kubectl get deployments.

Kubernetes中ingress實現虛擬主機的步驟

4. 創建ingress的yaml文件,關聯是svc1和svc2

[root@master yaml]# vim ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-1
spec:
  rules:
   - host: www1.bdqn.com
    http:
     paths:
     - path: /
      backend:
       serviceName: svc-1
       servicePort: 80
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-2
spec:
  rules:
   - host: www2.bdqn.com
    http:
     paths:
     - path: /
      backend:
       serviceName: svc-2
       servicePort: 80
執行一下
[root@master yaml]# kubectl apply -f ingress.yaml
查看一下
[root@master yaml]# kubectl get ingresses.

Kubernetes中ingress實現虛擬主機的步驟

[root@master yaml]# kubectl describe ingresses. ingress-1

Kubernetes中ingress實現虛擬主機的步驟

[root@master yaml]# kubectl describe ingresses. ingress-2

Kubernetes中ingress實現虛擬主機的步驟

5、由于實驗環境限制,所以自己用來模擬-一個域名。

進入本機的 C:\Windows\System32\drivers\etc , 修改hosts文件,添加Pod(ingress-controller)運行所在的節點IP。

Kubernetes中ingress實現虛擬主機的步驟

訪問一下
[root@master yaml]# kubectl get svc -n ingress-nginx 
//查看映射的端口

Kubernetes中ingress實現虛擬主機的步驟

http://www1.bdqn.com:30817/

Kubernetes中ingress實現虛擬主機的步驟

http://www2.bdqn.com:30817/

Kubernetes中ingress實現虛擬主機的步驟

總結上述示例的pod是如何一步一步可以使client訪問到的,總結如下:

后端pod===》service====》ingress規則====》寫入Ingress-nginx-controller配置文件并自動重載使更改生效===》對本機進行域名解析====》實現client通過域名的IP+端口都可以訪問到后端pod

Ingress資源實現https代理安全訪問。

在上面的操作中,實現了使用ingress-nginx為后端所有pod提供一個統一的入口,那么,有一個非常嚴肅的問題需要考慮,就是如何為我們的pod配置CA證書來實現HTTPS訪問?在pod中直接配置CA么?那需要進行多少重復性的操作?而且,pod是隨時可能被kubelet殺死再創建的。當然這些問題有很多解決方法,比如直接將CA配置到鏡像中,但是這樣又需要很多個CA證書。

這里有更簡便的一種方法,就拿上面的情況來說,后端有多個pod,pod與service進行關聯,service又被ingress規則發現并動態寫入到ingress-nginx-controller容器中,然后又為ingress-nginx-controller創建了一個Service映射到群集節點上的端口,來供client來訪問。

Kubernetes中ingress實現虛擬主機的步驟

在上面的一系列流程中,關鍵的點就在于ingress規則,我們只需要在ingress的yaml文件中,為域名配置CA證書即可,只要可以通過HTTPS訪問到域名,至于這個域名是怎么關聯到后端提供服務的pod,這就是屬于k8s群集內部的通信了,即便是使用http來通信,也無傷大雅。

1. 生成證書

[root@master yaml]# mkdir https
//創建一個放置證書的目錄
[root@master yaml]# cd https/
[root@master https]# openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=testsvc /O=testsvc"
//生成證書

Kubernetes中ingress實現虛擬主機的步驟

2. 創建secret資源, 保存證書。

[root@master https]# kubectl create secret tls tls-secret --key=tls.key --cert tls.crt

3、創建一個deploy3.yaml文件,模擬一個web服務。

[root@master yaml]# vim deploy3.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: deploy3
spec:
  replicas: 2
  template:
   metadata:
    labels:
     app: nginx3
   spec:
    containers:
    - name: nginx3
     image: nginx
---
apiVersion: v1
kind: Service
metadata:
  name: svc-3
spec:
  selector:
   app: nginx3
  ports:
   - port: 80
    targetPort: 80
執行一下
[root@master https]# kubectl apply -f deploy3.yaml
查看一下
[root@master https]# kubectl get pod

Kubernetes中ingress實現虛擬主機的步驟

[root@master https]# kubectl get svc

Kubernetes中ingress實現虛擬主機的步驟

4、創建對應的ingress規則。

[root@master https]# vim ingress.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-3
spec:
  tls:
   - hosts:
    - www3.bdqn.com      #域名
    secretName: tls-secret   #保存的證書
  rules:
   - host: www3.bdqn.com
    http:
     paths:
     - path: /
      backend:
       serviceName: svc-3
       servicePort: 80

執行一下

[root@master https]# kubectl apply -f ingress.yaml

查看一下

[root@master https]# kubectl get ingresses.

Kubernetes中ingress實現虛擬主機的步驟

5.查找對應service nodePort的443端口映射的端口,直接用瀏覽器訪問即可。

進入本機的 C:\Windows\System32\drivers\etc , 修改hosts文件,添加Pod(ingress-controller)運行所在的節點IP。

Kubernetes中ingress實現虛擬主機的步驟

查看映射端口
[root@master https]# kubectl get svc -n ingress-nginx

Kubernetes中ingress實現虛擬主機的步驟

https://www3.bdqn.com:31372/

Kubernetes中ingress實現虛擬主機的步驟

k8s集群利用了“一切皆為資源”的原理,把生成的ca證書當成一個公共的資源來使用,使用時只需綁定保存的ca證書即可,不像之前一樣,需要一個一個的創建ca證書,然后在關聯起來,方便好用又快捷。

另外有需要云服務器可以了解下創新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


新聞標題:Kubernetes中ingress實現虛擬主機的步驟-創新互聯
地址分享:http://m.jcarcd.cn/article/csghjh.html
主站蜘蛛池模板: 欧美一区二区经典 | 欧美在线男人 | 日本欧美视频在线看 | 成人尤物| 日本亚洲 | 国产精品私人影院 | 日韩激情在线观看 | 欧美一级鲁丝 | 91精品在线观看 | 国产日产欧产美韩 | 日韩在线欧美精 | 欧美亚洲视频 | 中文字幕按摩做爰 | 无码精品久久久久久人妻中字 | 日韩欧美亚洲国产 | 中文字幕日韩wm | 福利影院在线 | 国产精品视频一区二 | 亚洲无码久久影视 | 九九视频免 | 欧美一级大黄特黄 | 国产日韩一 | 成人午夜福利看片 | 国产粗语刺激 | 老司机深夜免费福利 | 精品综合国产高清 | 国产精品视频1区 | 日本精品 | 成人影视大全 | 日韩精品在线电影 | 日韩射吧 | 国产精品最新在线 | 福利影院在线播放 | 97在线人人| 碰夜夜澡日日澡 | 国产精品国产17 | 91免费国产 | 国产黄大片在线视频 | 欧美日韩国产 | 99热观看| 看特黄特色 |