Kubernetes 部署應用(Nginx)的兩種方式,你更喜歡哪一種?

閱讀:503 2023-11-06 22:40:33

k8s發布應用的兩種方式:

  • kubernetes-dashboard
  • kubectl命令行

一、Dashboard方式

配置部署:包含應用名稱、容器鎰、pod數量、Service非常的方便,不想設置配置yaml的可以很方便的部署。

點擊部署就成功了k8s應用的部署了。部署后可以看到相應的deployment、pod、service等狀態和信息。

  • Deployment

  • Pod

  • Service

  • 監控

二、命令行方式

1、創建namespace

復制
vim nginx-namespace.yaml
  • 1.
 
復制
apiVersion: v1 #類型為Namespace kind: Namespace #類型為Namespace metadata: name: ns-test  #命名空間名稱
  labels: name: label-test  #pod標簽
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
 

執行:

復制
#創建
kubectl create -f nginx-namespace.yaml
#查詢
kubectl get namespace
  • 1.
  • 2.
  • 3.
  • 4.
 

2、創建pod

一般不直接create pod,而是通過controller來創建pod。deployment為其中一種controller。

復制
vim nginx-deployment.yaml
  • 1.
 
復制
apiVersion: apps/v1
kind: Deployment metadata: namespace: ns-test
  name: nginx-deployment
spec: selector: matchLabels: app: nginx
  replicas: 3 template: metadata: labels: app: nginx
    spec: containers: - name: nginx
        image: nginx:alpine
        ports: - containerPort: 80
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
 

執行:

復制
#創建
kubectl create -f nginx-deployment.yaml
#查詢。查詢時需要等待一會,此時會下載鏡像需要時間
kubectl get deployment -n ns-test
#或
kubectl get pods -n ns-test
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
 

可以看到"replicas: 3",所以有3個pod并且每個pod只有一個容器。都正常啟動。

接下來看看如何訪問,查看訪問的端口:

復制
kubectl get pods -o wide -n ns-test   #-o wide 展開的意思
  • 1.
 

這時已經可以訪問了,就是通過虛擬ip來端口。

  • curl 10.244.1.43
  • curl 10.244.1.44
  • curl 10.244.1.45

如下圖,只要集群范圍內的機器就可以直接通過IP訪問了。

那問題來了,這么多虛擬ip,每次pod重建還會重新生成,那怎么辦呢?

看下面的servcie。

3、創建service

vim nginx-service.yaml:

復制
apiVersion: v1
kind: Service metadata: namespace: ns-test
  name: nginx-service
spec: selector: app: nginx
  ports: - protocol: TCP
    port: 80 targetPort: 80
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
 

執行:

復制
kubectl apply -f nginx-service.yaml
kubectl get svc nginx-service -o wide  -n ns-test
  • 1.
  • 2.
 

可以看到有一個cluster-ip,通過這個端口+端口就可以負載到之前3個節點的nginx了。

當然cluster-ip也只能在集群內的機器訪問。再結合nginx或域名就可以向外提供負載均衡訪問了。

可以看到cluster-ip雖然有負載均衡的功能但還是不能外網訪問k8s部署的應用,那如何才能直接外網能訪問k8s部署的應用呢?

設置service為nodeport方式,如下:

復制
apiVersion: v1
kind: Service metadata: namespace: ns-test
  name: nginx-service
spec: selector: app: nginx
  ports: - nodePort: 30000 protocol: TCP
    port: 80 targetPort: 80 type: NodePort
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
 

其中type: NodePort另外想指定端口也可以加上nodePort: 30000。這樣就可以通過主機ip+nodePort的訪問k8s部署的應用了。

執行:

復制
kubectl apply -f nginx-service.yaml
kubectl get svc nginx-service -o wide -n ns-test
  • 1.
  • 2.
 

可以看到我使用的是我主機的ip+nodePort可以直接訪問到nginx了。

三、補充知識

1、Service

Kubernetes 服務有四種類型:ClusterIP、NodePort、LoadBalancer 和ExternalName。服務spec中的type 屬性決定了服務如何暴露給網絡。

  • ClusterIP 類型的服務將在集群內部暴露,并分配一個 cluster IP 地址。Pod 可以通過這個 IP 地址來訪問該服務。ClusterIP 類型的服務適用于需要在集群內部訪問的服務,例如數據庫服務。
  • NodePort 類型的服務將在每個節點上暴露一個端口,并分配一個 cluster IP 地址。外部客戶端可以通過 <NodeIP>:<NodePort> 來訪問該服務。NodePort 類型的服務適用于需要在集群外部訪問的服務,例如 Web 服務。
  • LoadBalancer 類型的服務將使用集群外部的負載均衡器來暴露服務。外部客戶端可以通過負載均衡器的 IP 地址來訪問該服務。LoadBalancer 類型的服務適用于需要在集群外部訪問的服務,并且需要高可用性的服務。一般LoadBalancer是付費提供的。
  • ExternalName 類型的服務將將服務指向一個外部主機或域名。Pod 可以通過該主機或域名來訪問該服務。ExternalName 類型的服務適用于需要訪問外部服務的場景。
相關文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感興趣
推薦閱讀 更多>
推薦商標

{{ v.name }}

{{ v.cls }}類

立即購買 聯系客服
主站蜘蛛池模板: 国产精品无码a∨精品| 中文字幕丰满乱子伦无码专区| 国产成人年无码AV片在线观看| 无码丰满少妇2在线观看| 人妻无码一区二区三区AV| 无码人妻精品一区二区三区久久久| 亚洲AV无码一区二区乱子仑| 亚洲AV无码专区亚洲AV伊甸园| 亚洲av纯肉无码精品动漫| 亚洲中文久久精品无码| 无码人妻精品一区二区三区在线| 亚洲精品无码永久在线观看男男 | 亚洲美免无码中文字幕在线| 无遮掩无码h成人av动漫| 免费无码午夜福利片| 无码粉嫩小泬无套在线观看| 中文一国产一无码一日韩| 亚洲成av人片在线观看天堂无码 | 少妇无码一区二区三区免费| 好硬~好爽~别进去~动态图, 69式真人无码视频免 | 免费无码黄网站在线观看| 99久久亚洲精品无码毛片| 亚洲综合无码精品一区二区三区 | 少妇久久久久久人妻无码| 人妻丰满AV无码久久不卡| 中文字幕AV中文字无码亚| 久久伊人亚洲AV无码网站| 无码AV动漫精品一区二区免费| 亚洲AV永久无码天堂影院| 无码丰满熟妇juliaann与黑人 | 久久久久无码精品亚洲日韩| 亚洲综合av永久无码精品一区二区| 伊人久久大香线蕉无码麻豆| 天天看高清无码一区二区三区| 国产精品白浆无码流出| 免费无码又爽又黄又刺激网站| 五月丁香六月综合缴清无码| 永久免费无码网站在线观看个| 精品一区二区无码AV| 中文字幕av无码不卡| 亚洲国产精品成人精品无码区|