iT邦幫忙

2023 iThome 鐵人賽

DAY 29
0

昨天把環境架好,那我們來試看看吧。今天先來分析講解怎麼建一個k8s的資源,就從Pod開始吧

Pod

為k8s最小的部屬單位,想對container操作的話,最基本也是要先創建一個Pod。

首先撰寫一個pod.yml檔,內容基本大致如下

apiVersion: v1
kind: Pod
metadata:
  name: hello-pod
spec:
  containers:
    - name: hello-container
      image: w5151381guy/helloworld
      ports:
        - containerPort: 8080
  • apiVersion:根據不同的kind會有不同的api version。
    也可以透過kubectl api-versions去查,輸出如下
admissionregistration.k8s.io/v1
apiextensions.k8s.io/v1
apiregistration.k8s.io/v1
apps/v1
authentication.k8s.io/v1
authorization.k8s.io/v1
autoscaling/v1
autoscaling/v2
batch/v1
certificates.k8s.io/v1
coordination.k8s.io/v1
discovery.k8s.io/v1
events.k8s.io/v1
flowcontrol.apiserver.k8s.io/v1beta2
flowcontrol.apiserver.k8s.io/v1beta3
networking.k8s.io/v1
node.k8s.io/v1
policy/v1
rbac.authorization.k8s.io/v1
scheduling.k8s.io/v1
storage.k8s.io/v1
v1
  • kind:建立的資源類別,常用的有Pod、Service、Deployment。
  • metadata可以看成標籤,之後可以根據metadata的內容來找到這個Pod。
  • spec:最重要的地方,要撰寫到底著個資源下到底有甚麼,比如我這邊要用w5151381guy/helloworld這個image起一個container,port 號開在8080。

接者部屬看看

kubectl apply -f pod.yml

會看到類似訊息

pod/nginx-pod created

代表創建成功,接者我們看一下pod的狀態

kubectl get po

https://ithelp.ithome.com.tw/upload/images/20230829/20139136PBlacBTeUE.png
running就代表沒問題啦。

那我要怎麼連到呢,雖然在建立pod時會有這個pod的ip位置,不過這只適用於k8s集群(主節點、工作節點)內的溝通,因此這時候就需要一個Service來處理對外的連接了。

Service

簡單來說Service會負責作為K8s集群內部Pod能和集群外溝通的橋樑,或者應該說溝通的部分其實都會用到Service。

先來看看service.yml

apiVersion: v1
kind: Service
metadata:
  name: hello-service
spec:
  selector:
    app: hello-pod
  type: NodePort
  ports:
    - name: http
      protocol: TCP
      port: 80
      targetPort: 8080
      nodePort: 30391

這裡可以看到不一樣的幾個標籤

  • selector:選擇要連接的Pod或其他資源,這邊我選擇hello-pod
  • ports:設定port的對應。
    • port 代表這個service的port
    • targetPort代表要連接的port,這裡對到 hello-pod開出的port號
    • nodePort代表這個node上開出的port號
  • type:是表示這個service的模式,因為我要開出對外,選擇了NodePort。

NodePort模式其概念是在Node上開一個指定的Port,接者透過Service將port mapping到Pod的Port上,藉此可以將Pod 開放給外部使用。

以上我就可以使用我的Nodeip加上nodePort連接到hello-pod這個服務了喔~

今天就先講到這邊,明天將延續概念結合之前的demo演示。


上一篇
K8s 安裝
下一篇
K8s-Deployment
系列文
帶著MBP在異世界探險的科技宅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言