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

溫馨提示×

溫馨提示×

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

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

如何使用httpd鏡像創建一個Deployment資源對象及其它關聯

發布時間:2020-04-20 10:35:47 來源:億速云 閱讀:439 作者:三月 欄目:云計算


下文給大家帶來如何使用httpd鏡像創建一個Deployment資源對象及其它關聯,希望能夠給大家在實際運用中帶來一定的幫助,負載均衡涉及的東西比較多,理論也不多,網上有很多書籍,今天我們就用億速云在行業內累計的經驗做一個解答。


1、使用httpd鏡像創建一個Deployment資源對象
[root@master ~]# vim lvjianzhao.yaml    #編寫yaml文件

kind: Deployment            #指定要創建的資源對象類型
apiVersion: extensions/v1beta1        #指定deployment所對應的API版本
metadata:
  name: lvjianzhao-deploy      #定義deployment的名稱
spec:
  replicas: 4            #定義需要創建pod副本的數量
  template:
    metadata:
      labels:                           #指定pod的標簽
        user: lvjianzhao
    spec:
      containers:                                 
      - name: httpd                    #指定容器的名稱
        image: httpd                #指定基于哪個鏡像運行容器
[root@master ~]# kubectl apply -f lvjianzhao.yaml     #執行編寫的文件
[root@master ~]# kubectl explain deployment     
#注:如果不知道某個資源對象所對應的API版本,可以通過此命令查看
KIND:     Deployment
VERSION:  extensions/v1beta1             #這就是Deployment資源所對應的API版本
                        ........................#省略部分內容
[root@master ~]# kubectl get deployment lvjianzhao-deploy     
#確定所執行的yaml文件生成了我們所需數量的pod

查看其pod標簽,是否是我們定義的label:

[root@master ~]# kubectl describe deployment lvjianzhao-deploy    #查看這個資源對象的詳細信息
Name:                   lvjianzhao-deploy
Namespace:              default
CreationTimestamp:      Thu, 07 Nov 2019 17:50:44 +0800
Labels:                 "user=lvjianzhao"              #這里就是該資源對象的標簽
2、創建一個svc資源對象與上述Deployment資源對象關聯。且能夠對外網提供服務。映射節點端口為:32123.

如何使用httpd鏡像創建一個Deployment資源對象及其它關聯

[root@master ~]# vim httpd-service.yaml    #編寫service的yaml文件

kind: Service
apiVersion: v1
metadata:
  name: httpd-service
spec:
  type: NodePort              #這里需要指定類型為“NodePort”,否則默認是cluster IP
  selector:
    user: lvjianzhao                #與deployment資源對象的這個標簽進行關聯
  ports:
  - protocol: TCP
    port: 79                #這里指定要映射到的Cluster  IP的端口
    targetPort: 80              #這里指定的是要映射pod中的端口
    nodePort: 32123     #這里指定的是映射到宿主機的端口
[root@master ~]# kubectl apply -f httpd-service.yaml        #執行該yaml文件
[root@master ~]# kubectl get svc httpd-service     #查看創建的svc(service)
NAME            TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
httpd-service   NodePort   10.97.13.198   <none>        79:32123/TCP   2m1s
#可以看到將指定的群集端口映射到了本地的32123

現在就可以使用client訪問k8s群集中任意一個節點的32123端口,即可看到pod所提供的服務,如下:
如何使用httpd鏡像創建一個Deployment資源對象及其它關聯

[root@master ~]# kubectl describe svc httpd-service       #查看該service的詳細信息

返回的信息如下(只能顯示少量IP,剩下的只是被省略了,而不是未指定):
如何使用httpd鏡像創建一個Deployment資源對象及其它關聯

既然上面說到了,endpoint指定的都是后端pod的IP地址,那么就來查看驗證一下,是否正確,如下:

[root@master ~]# kubectl get pod -o wide | awk '{print $6}'   #輸出后端pod的IP地址
IP
10.244.1.18
10.244.2.21
10.244.1.17
10.244.2.20
#可以確認查看的IP能對應上上面service的endpoint指定的IP

查看svc映射endpoint的詳細情況,并詳細說明負載均衡的底層原理。

3、當我們做完上述操作后,client是可以訪問我們pod提供的服務的(并且是負載均衡的效果),那么這是一個什么樣的實現過程呢?依賴什么實現的?

其實,背后的原理并沒有那么高大上,kube-proxy通過iptables的轉發機制來實現負載均衡的效果的,先定義目標IP是service提供的群集IP,然后使用“-j”選項轉發到其他iptables規則,如下:

[root@master ~]# kubectl get svc httpd-service | awk '{print $3}'
#我們需要先查看到service的群集IP
CLUSTER-IP   
10.97.13.198
[root@master ~]# iptables-save > a.txt          #將iptables規則輸出到文件中,方便我們查找
[root@master ~]# vim a.txt         #打開iptables規則

搜索我們的群集IP,可以看到,當目標地址是群集IP地址時,就會轉發到另一個規則“KUBE-SVC-X2P42VLQEZCHLPKZ”,如下:

如何使用httpd鏡像創建一個Deployment資源對象及其它關聯
那么,現在繼續搜索它轉發到的規則上,如下:
如何使用httpd鏡像創建一個Deployment資源對象及其它關聯

上面的圖中,就是與他實現負載均衡相關的策略的,我們一共四個pod,所以上圖中的第一個規則使用了random的算法,只有0.25(1/4)的幾率采用這個規則,當到達第二條規則后,則有0.33的幾率,因為去除前一個pod,還剩下三個pod,10/3=0.33,這就是這個幾率的由來,依次類推,當到達最后一個規則后,那么就不用指定幾率了,肯定是它來處理這條請求。

附加:為node節點打標簽,以便使pod運行在指定的節點。
[root@master ~]# kubectl label nodes node01 disktype=ssd  
#給節點node01打標簽“disktype=ssd”(自定義的標簽)

#相應的yaml文件如下:
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
  name: httpd
spec:
  revisionHistoryLimit: 10
  replicas: 3
  template:
    metadata:
      labels:
        app: httpd-server
    spec:
      containers:
      - name: httpd
        image: 192.168.1.1:5000/httpd:v1
        ports:
        - containerPort: 80
      nodeSelector:                //指定標簽選擇器

       disktype: ssd


看了以上關于如何使用httpd鏡像創建一個Deployment資源對象及其它關聯,如果大家還有什么地方需要了解的可以在億速云行業資訊里查找自己感興趣的或者找我們的專業技術工程師解答的,億速云技術工程師在行業內擁有十幾年的經驗了。

 



向AI問一下細節

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

AI

伊宁市| 普安县| 财经| 申扎县| 宁河县| 晋中市| 林甸县| 武川县| 平泉县| 横山县| 阜南县| 武义县| 博乐市| 潮州市| 二连浩特市| 同心县| 南康市| 安庆市| 高尔夫| 揭阳市| 沙雅县| 七台河市| 陇西县| 邳州市| 花垣县| 盐山县| 乐清市| 溧阳市| 蓬莱市| 平阴县| 宜宾县| 庆阳市| 和政县| 左贡县| 高州市| 绩溪县| 疏附县| 武冈市| 合作市| 衡阳县| 信宜市|