欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

配置Kubernetes外網(wǎng)訪問(wèn)集群

 更新時(shí)間:2022年03月31日 10:56:57   作者:癡者工良  
這篇文章介紹了配置Kubernetes外網(wǎng)訪問(wèn)集群的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

查詢 Service

關(guān)于 Service,讀者可以查看官方文檔的資料:https://kubernetes.io/zh/docs/concepts/services-networking/service/

Service 是 k8s 中為多個(gè) pod 公開網(wǎng)絡(luò)服務(wù)的抽象方法。在 k8s 中,每個(gè) pod 都有自己的 ip 地址,而且 Service 可以為一組 pod 提供相同的 DNS ,使得多個(gè) pod 之間可以相互通訊,k8s 可以在這些 pod 之間進(jìn)行負(fù)載均衡。

查詢 pod:

kubectl get pods
NAME                    READY   STATUS    RESTARTS   AGE
nginx-585449566-d2fdc   1/1     Running   0          4h14m
nginx-585449566-krsch   1/1     Running   0          67m
nginx-585449566-l2j6h   1/1     Running   0          67m

查看 Service:

kubectl get services
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.96.0.1        <none>        443/TCP   29h
nginx        ClusterIP   10.101.245.225   <none>        80/TCP    4h19m

kubectl exec {pod名稱} {要執(zhí)行的命令} 可以在 pod 中執(zhí)行某個(gè)命令,這里我們可以打印某個(gè) pod 的環(huán)境變量。

kubectl exec nginx-585449566-d2fdc -- pritenv
# 或者
# kubectl exec nginx-585449566-d2fdc env
... ...
KUBERNETES_PORT=tcp://10.96.0.1:443
KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1
NGINX_VERSION=1.19.10
... ...

Service 外部服務(wù)類型

k8s 中可以將一個(gè) Service 暴露到集群外部,外界可以通過(guò) ip 訪問(wèn)這個(gè) Service。Service 有個(gè) ServiceType ,允許我們指定如何暴露服務(wù)。

Type 有三種類型,其取值說(shuō)明如下:

  • ClusterIP

    通過(guò)集群內(nèi)部 IP 暴露服務(wù),也就是說(shuō)只能在集群內(nèi)部訪問(wèn),ClusterIP 是 ServiceType 的默認(rèn)值。

  • NodePort

    通過(guò)每個(gè)節(jié)點(diǎn)上的 IP 和靜態(tài)端口(NodePort)暴露服務(wù)。由于其是節(jié)點(diǎn)上的 ,所以具有通過(guò)集群外部訪問(wèn)這個(gè)服務(wù)。

  • LoadBalancer

    使用云提供商的負(fù)載均衡器向外部暴露服務(wù)。 外部負(fù)載均衡器可以將流量路由到自動(dòng)創(chuàng)建的 NodePort 服務(wù)和 ClusterIP 服務(wù)上。

  • ExternalName

    通過(guò)返回 CNAME 和對(duì)應(yīng)值,可以將服務(wù)映射到 externalName 字段的內(nèi)容(例如,foo.bar.example.com)。

配置 ServiceType

我們刪除之前 Deployment 部署 nginx 時(shí),通過(guò) expose 創(chuàng)建的 Service。

kubectl delete service nginx

然后重新創(chuàng)建 service。

kubectl expose deployment nginx --type=LoadBalancer

查詢 Service(kubectl get services):

NAME         TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP      10.96.0.1      <none>        443/TCP        29h
nginx        LoadBalancer   10.97.249.37   <pending>     80:31036/TCP   30s

這里我們說(shuō)一下這個(gè)端口的一些說(shuō)明。

Service 是針對(duì)一個(gè) Pod 或多個(gè) Pod 起效,它為一組 pod 暴露相同的端口。也就是說(shuō),同一個(gè) Service 中的 pod 不能分別設(shè)置不同的 端口。而且前面我們的一個(gè) Service 中,是為一個(gè) nginx 創(chuàng)建 Deployment ,并且設(shè)置副本集,所以他們的 端口是一致的。

Service 不會(huì)直接把 pod 暴露的 端口映射到公網(wǎng),Service 默認(rèn)在 30000-32767 之間為我們映射端口。所以筆者服務(wù)器上,是 310361(外網(wǎng)) 映射了 80(內(nèi)網(wǎng))。

這時(shí)已經(jīng)可以直接通過(guò)外網(wǎng)訪問(wèn) Service 中的服務(wù)了。如果你不知道服務(wù)器的公網(wǎng) ip,可以通過(guò)命令查詢:

curl ifconfig.io

然后訪問(wèn) http://x.x.x.x:31036 即可。

當(dāng)使用 LoadBalancer 暴露服務(wù)到集群外部網(wǎng)絡(luò)時(shí),我們?cè)L問(wèn)的實(shí)際上是 Service,而不是具體的某個(gè) pod,然后 Service 會(huì)將流量重定向到后端 pod 中。這個(gè)要看實(shí)際環(huán)境和云服務(wù)商的支持。

伸縮數(shù)量

kubectl scale 命令可以擴(kuò)容或縮容 Deployment、ReplicaSet、Replication Controller 或 Job 中Pod數(shù)量。在上一篇文件中中我們已經(jīng)使用到。這里我們繼續(xù)使用這個(gè)命令來(lái)伸縮 nginx 副本的數(shù)量,然后觀察外部網(wǎng)絡(luò)訪問(wèn) Service 時(shí)的結(jié)果。

現(xiàn)在將我們的 nginx 副本數(shù)量設(shè)置為 0。

kubectl scale deployment nginx --replicas=0

再訪問(wèn) 公網(wǎng)的 31036 端口(具體端口看你查詢出來(lái)的),發(fā)現(xiàn)無(wú)法訪問(wèn)了,因?yàn)?pod 數(shù)量為 0 ,Service 找不到 pod 來(lái)提供服務(wù)。

如果我們把 ReplicaSet 數(shù)量設(shè)置為 1 或以上,則又可以繼續(xù)訪問(wèn)了。

kubectl scale deployment nginx --replicas=2

階段總結(jié)

到此為止,我們的學(xué)習(xí)已經(jīng)完成一個(gè)小階段,能夠創(chuàng)建集群、加入新的 Node、部署 pod 以及暴露公網(wǎng) ip,允許外部訪問(wèn),還可以提供多副本以負(fù)載均衡。接下來(lái)我們總結(jié)一下學(xué)習(xí)到的工具、命令,后續(xù)的學(xué)習(xí)會(huì)在這些基礎(chǔ)之上開展。

  • kubeadm

    kubeadm init、kubeadm join 創(chuàng)建集群和使節(jié)點(diǎn)加入集群。

  • kubectl

    kubectl 原理是請(qǐng)求 apiserver 完成某些操作,日常操作中,最常用的就是 kubectl。

    kubectl create {對(duì)象} ,創(chuàng)建 deployment、job 等對(duì)象。

    kubectl apply -f 應(yīng)用 yaml 文件,完成某些操作。

    kubectl get {對(duì)象} 查詢對(duì)象。

    kubectl scale {對(duì)象} 伸縮對(duì)象數(shù)量(ReplicaSet)。

    kubectl expose 創(chuàng)建 Service。

    kubectl describe 獲取對(duì)象詳細(xì)的信息。

    kubectl exec 在對(duì)象中執(zhí)行命令,例如 pod。

到此這篇關(guān)于配置Kubernetes外網(wǎng)訪問(wèn)集群的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Kubernetes(K8S)容器集群管理環(huán)境完整部署詳細(xì)教程-中篇

    Kubernetes(K8S)容器集群管理環(huán)境完整部署詳細(xì)教程-中篇

    本系列文章主要介紹了Kubernetes(K8S)容器集群管理環(huán)境完整部署的詳細(xì)教程,分為上中下三篇文章,此為中篇,需要的朋友可以參考下
    2022-01-01
  • kubernetes中的namespace、node、pod介紹

    kubernetes中的namespace、node、pod介紹

    這篇文章介紹了kubernetes中的namespace、node、pod,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • Kubernetes ApiServer三大server權(quán)限與數(shù)據(jù)存儲(chǔ)解析

    Kubernetes ApiServer三大server權(quán)限與數(shù)據(jù)存儲(chǔ)解析

    這篇文章主要為大家介紹了Kubernetes ApiServer三大server權(quán)限與數(shù)據(jù)存儲(chǔ)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • 使用kubeadm命令行工具創(chuàng)建kubernetes集群

    使用kubeadm命令行工具創(chuàng)建kubernetes集群

    這篇文章介紹了使用kubeadm命令行工具創(chuàng)建kubernetes集群的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • Docker與K8s關(guān)系介紹不會(huì)Docker也可以使用K8s

    Docker與K8s關(guān)系介紹不會(huì)Docker也可以使用K8s

    想學(xué)K8s,必須得先學(xué)會(huì)Docker嗎?這是很多網(wǎng)友在開始有想法想要學(xué)?K8s的時(shí)候都會(huì)冒出來(lái)的想法,要回答這個(gè)問(wèn)題,我們需要先搞清楚?Docker?和?K8s?他們的角色是什么,相互之間是什么關(guān)系
    2022-06-06
  • Dashboard管理Kubernetes集群與API訪問(wèn)配置

    Dashboard管理Kubernetes集群與API訪問(wèn)配置

    這篇文章介紹了Dashboard管理Kubernetes集群與API訪問(wèn)配置的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • CKAD認(rèn)證中部署k8s并配置Calico插件

    CKAD認(rèn)證中部署k8s并配置Calico插件

    這篇文章介紹了CKAD認(rèn)證中部署k8s并配置Calico插件的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • Kubernetes關(guān)鍵組件與結(jié)構(gòu)組成介紹

    Kubernetes關(guān)鍵組件與結(jié)構(gòu)組成介紹

    這篇文章介紹了Kubernetes的關(guān)鍵組件與結(jié)構(gòu)組成,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • 配置Kubernetes外網(wǎng)訪問(wèn)集群

    配置Kubernetes外網(wǎng)訪問(wèn)集群

    這篇文章介紹了配置Kubernetes外網(wǎng)訪問(wèn)集群的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • Kubernetes控制節(jié)點(diǎn)的部署

    Kubernetes控制節(jié)點(diǎn)的部署

    這篇文章介紹了Kubernetes控制節(jié)點(diǎn)的部署,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04

最新評(píng)論