91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

如何使用daemonset+hostport實現類ingress的負載均衡服務

發布時間:2022-01-05 09:28:36 來源:億速云 閱讀:267 作者:柒染 欄目:云計算

如何使用daemonset+hostport實現類ingress的負載均衡服務,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

在kubernetes環境中,現如今我們對外提供服務我們使用較多的是ingress方案。但對于很多已經長期使用nginx作為反向代理的用戶而言,要將復雜的配置遷移到nginx ingress上顯然非常麻煩。

所以,對于更廣大的用戶而言,將nginx的配置信息直接移植到鏡像中,然后通過良好的版本管理來進行滾動迭代發布。這樣就彌補了相比較于ingress每次更新都要手動做鏡像再進行發布的劣勢,反而體現了版本管理的優勢。

同時,借鑒各廠商ingress controller的解決方案,daemonset+hostport能夠保證請求更快更直接的發送到對應的反向代理,從而提高吞吐效率。

接下來我們介紹下如何使用daemonset+hostport實現類ingress的負載均衡服務。

1.測試站點:

首先我們做兩個鏡像,訪問直接返回foo1,以及foo2

2.發布測試站點:

foo1-pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: mytest-site-foo1
  labels:
    app: mytest-site-foo1
spec:
  containers:
  - name: mytest-site-foo1
    image: 192.168.1.242:5000/mytest-site-foo1

foo1-svc.yaml

apiVersion: v1
kind: Service
metadata:
  name: mytest-site-foo1-svc
  labels:
    app: mytest-site-foo1-svc
spec:
  selector:
    app: mytest-site-foo1
  type: ClusterIP
  ports:
    - protocol: TCP
      port: 8009
      targetPort: 80

再進行發布 kubectl apply -f foo1-pod.yaml;kubectl apply -f foo1-svc.yaml

按照上面的文件再寫foo2-pod.yaml,foo2-svc.yaml,并進行發布。

2.制作前端nginx鏡像:

nginx的配置文件default.conf:

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    access_log  /var/log/nginx/host.access.log  main;

    location /foo1 {
	proxy_pass http://mytest-site-foo1-svc:8009/;
    }
    location /foo2 {
	proxy_pass http://mytest-site-foo2-svc:8009/;
    }
    location / {
	root /var/www/html;
    }
}

再編寫dockerfile(當然如果配置文件多可以做成目錄一并添加到nginx鏡像中):

FROM nginx:latest
ADD default.conf /etc/nginx/conf.d/
ENTRYPOINT nginx -c /etc/nginx/nginx.conf && tail -f /dev/null

創建鏡像并上傳到registry:

制作鏡像:docker build -t mytest-site-nginx .

打tag:docker tag mytest-site-nginx 192.168.1.244:5000/mytest-site-nginx

上傳:docker push 192.168.1.244:5000/mytest-site-nginx

3.發布nginx

有了對應的鏡像,我們就能將nginx以daemonset的方式發布到各個節點。

mytest-site-nginx-ds.yaml:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: mytest-site-nginx-ds
  labels:
    app: mytest-site-nginx-ds
spec:
  template:
    metadata:
      labels:
        app: mytest-site-nginx-ds
    spec:
      containers:
      - name: mytest-site-nginx
        image: 192.168.1.242:5000/mytest-site-nginx:latest
        ports:
        - name: http
          hostPort: 80
          protocol: TCP
          containerPort: 80
  selector:
    matchLabels:
      app: mytest-site-nginx-ds

kubectl apply -f mytest-site-nginx-ds.yaml

接下來我們就能用http協議訪問各個節點/foo1以及/foo2來訪問后端實際運行的網站。

4.如何更新

首先將我們的dockerfile以及配置文件放置到gitlab上。

發布時實現:

下載配置代碼->構建鏡像->上傳鏡像->kubectl set image進行發布。

同時可以利用git的版本tag或者kubernetes的roll back進行版本回滾。

關于如何使用daemonset+hostport實現類ingress的負載均衡服務問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

普安县| 太原市| 鞍山市| 辽阳市| 咸丰县| 台州市| 汤阴县| 和顺县| 保靖县| 丽水市| 宣化县| 苏州市| 云林县| 新闻| 大厂| 金川县| 敦煌市| 彭泽县| 台州市| 庆安县| 大方县| 昔阳县| 衡南县| 临夏市| 南陵县| 溆浦县| 高雄市| 彩票| 元氏县| 钟祥市| 泾川县| 探索| 同心县| 宁波市| 巴彦淖尔市| 广平县| 星座| 英山县| 辉县市| 健康| 荥经县|