iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 11
0
DevOps

從題目中學習k8s系列 第 11

【從題目中學習k8s】-【Day11】第三題 - Service


title: 【從題目中學習k8s】-【Day11】第三題 - Service
description: 以無比的恆毅力堅持30天鍊成鐵人--連續30天,一天發表一篇IT技術文章

【從題目中學習k8s】-【Day11】第三題 - Service

tags: DevOps CICD K8s Docker

Question

Create and configure the service front-end-service

so it‘s accessible through NodePort/ClusterIP and routes to the existing Pod named front-end

概念

這題就是典型Service的考題,而且Pod題目已經幫你建立好了,不需要自己創建,因此一個指令就可以完成這道題目,非常簡單。
方法如下:

  1. 創建Service,將Pod expose出去

Answer

方法一

這種方法透過kubectl expose命令創建Service

$ kubectl expose pod front-end --name:front-end-service --type=NodePort --port=80

方法二

第二種方法則是透過YAML檔創建Service

$ vim svc.yaml

apiVersion: v1
kind: Service
metadata:
  name: front-end-service
spec:
  type: NodePort
  selector:
    <pod-key>: <pod-value>
  ports:
    - protocol: TCP
      port: 80

這種方法需要先檢查Podlabel是甚麼,再透過selector來選取


補充

因為這題好像有些太簡單了,Service前幾天筆者也介紹過,那再來補充一些特別的Service好了。

(絕對不是因為筆者良心過意不去)

Multi-Port Services

對於某些服務,可能需要需要提供多個port。Kubernetes 允許在Service上配置多個port定義。但是為服務使用多個port時,必須提供所有port的名稱,以使它們無歧義,不致混淆。
例如:

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: MyApp
  ports:
    - name: http
      protocol: TCP
      port: 80
      targetPort: 9376
    - name: https
      protocol: TCP
      port: 443
      targetPort: 9377

結論

今天算是比較簡單的Service基本題型,遇到這種題目就算是送分了,要好好把握哦。好啦,今天就到這囉~ 謝謝大家~

參考資料

Thank you!

You can find me on


上一篇
【從題目中學習k8s】-【Day10】第二題 - Deployment Rolling Update
下一篇
【從題目中學習k8s】-【Day12】第四題 - Pod & Namespace
系列文
從題目中學習k8s31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言