<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
關於 Service,讀者可以檢視官方檔案的資料:https://kubernetes.io/zh/docs/concepts/services-networking/service/
Service 是 k8s 中為多個 pod 公開網路服務的抽象方法。在 k8s 中,每個 pod 都有自己的 ip 地址,而且 Service 可以為一組 pod 提供相同的 DNS ,使得多個 pod 之間可以相互通訊,k8s 可以在這些 pod 之間進行負載均衡。
查詢 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名稱} {要執行的命令}
可以在 pod 中執行某個命令,這裡我們可以列印某個 pod 的環境變數。
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 ... ...
k8s 中可以將一個 Service 暴露到叢集外部,外界可以通過 ip 存取這個 Service。Service 有個 ServiceType ,允許我們指定如何暴露服務。
Type 有三種型別,其取值說明如下:
ClusterIP
通過叢集內部 IP 暴露服務,也就是說只能在叢集內部存取,ClusterIP 是 ServiceType 的預設值。
NodePort
通過每個節點上的 IP 和靜態埠(NodePort
)暴露服務。由於其是節點上的 ,所以具有通過叢集外部存取這個服務。
LoadBalancer
使用雲提供商的負載均衡器向外部暴露服務。 外部負載均衡器可以將流量路由到自動建立的 NodePort
服務和 ClusterIP
服務上。
ExternalName
通過返回 CNAME
和對應值,可以將服務對映到 externalName
欄位的內容(例如,foo.bar.example.com
)。
我們刪除之前 Deployment 部署 nginx 時,通過 expose 建立的 Service。
kubectl delete service nginx
然後重新建立 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
這裡我們說一下這個埠的一些說明。
Service 是針對一個 Pod 或多個 Pod 起效,它為一組 pod 暴露相同的埠。也就是說,同一個 Service 中的 pod 不能分別設定不同的 埠。而且前面我們的一個 Service 中,是為一個 nginx 建立 Deployment ,並且設定副本集,所以他們的 埠是一致的。
Service 不會直接把 pod 暴露的 埠對映到公網,Service 預設在 30000-32767 之間為我們對映埠。所以筆者伺服器上,是 310361(外網) 對映了 80(內網)。
這時已經可以直接通過外網存取 Service 中的服務了。如果你不知道伺服器的公網 ip,可以通過命令查詢:
curl ifconfig.io
然後存取 http://x.x.x.x:31036 即可。
當使用 LoadBalancer 暴露服務到叢集外部網路時,我們存取的實際上是 Service,而不是具體的某個 pod,然後 Service 會將流量重定向到後端 pod 中。這個要看實際環境和雲服務商的支援。
kubectl scale
命令可以擴容或縮容 Deployment、ReplicaSet、Replication Controller 或 Job 中Pod數量。在上一篇檔案中中我們已經使用到。這裡我們繼續使用這個命令來伸縮 nginx 副本的數量,然後觀察外部網路存取 Service 時的結果。
現在將我們的 nginx 副本數量設定為 0。
kubectl scale deployment nginx --replicas=0
再存取 公網的 31036 埠(具體埠看你查詢出來的),發現無法存取了,因為 pod 數量為 0 ,Service 找不到 pod 來提供服務。
如果我們把 ReplicaSet
數量設定為 1 或以上,則又可以繼續存取了。
kubectl scale deployment nginx --replicas=2
到此為止,我們的學習已經完成一個小階段,能夠建立叢集、加入新的 Node、部署 pod 以及暴露公網 ip,允許外部存取,還可以提供多副本以負載均衡。接下來我們總結一下學習到的工具、命令,後續的學習會在這些基礎之上開展。
kubeadm
kubeadm init
、kubeadm join
建立叢集和使節點加入叢集。
kubectl
kubectl 原理是請求 apiserver 完成某些操作,日常操作中,最常用的就是 kubectl。
kubectl create {物件}
,建立 deployment、job 等物件。
kubectl apply -f
應用 yaml 檔案,完成某些操作。
kubectl get {物件}
查詢物件。
kubectl scale {物件}
伸縮物件數量(ReplicaSet)。
kubectl expose
建立 Service。
kubectl describe
獲取物件詳細的資訊。
kubectl exec
在物件中執行命令,例如 pod。
到此這篇關於設定Kubernetes外網存取叢集的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45