日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

自动化集成:Kubernetes容器引擎详解

發布時間:2025/3/17 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自动化集成:Kubernetes容器引擎详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

同系列推薦

  • Jenkins管理工具詳解
  • Pipeline流水語法詳解
  • Docker容器入門簡介
  • Pipeline整合Docker容器
  • 微服務組件二次淺封裝

前言:該系列文章,圍繞持續集成:Jenkins+Docker+K8S相關組件,實現自動化管理源碼編譯、打包、鏡像構建、部署等操作;本篇文章主要描述Kubernetes引擎用法

一、基礎簡介

Kubernetes簡稱K8S,是一個開源的分布式的容器編排引擎,用來對容器化應用進行自動化部署和管理。

Control-Plane-Components:控制平面組件,對集群做出全局決策,例如:調度、檢測和事件響應,可以在集群中的任何節點上運行;

  • api:作為K8S控制面的組件,開放K8S的API,相當于控制面的前端;
  • etcd:兼具一致性和高可用性的鍵值數據庫,作為保存K8S數據的后臺庫;
  • scheduler:監聽新建未指定運行節點的Pods,并為Pod選擇運行節點;
  • controllermanager:運行控制器進程,邏輯上是一個單獨的進程;

Node:節點組件:每個節點上運行,維護運行的Pod并提供Kubernetes運行環境;

  • kubelet:在每個節點上運行的代理,保證容器都運行在Pod中;
  • kube-proxy:每個節點上運行的網絡代理, 維護節點上的網絡規則;

Container-Runtime:容器運行時,負責運行容器的軟件,支持Docker、containerd、CRI-O等多個容器運行環境,以及任何實現Kubernetes-CRI容器運行環境接口。

二、環境配置

1、服務搭建

使用Git拉取k8s-docker-desktop-for-mac倉庫,執行load_images.sh腳本,會拉取本地docker對應的k8s版本,注意這里要等到腳本流程執行完畢,可能因為Git連接的問題,耗時較長,下面是腳本拉取的鏡像:

docker images REPOSITORY TAG docker/desktop-kubernetes kubernetes-v1.21.5-cni-v0.8.5-critools-v1.17.0-debian k8s.gcr.io/kube-apiserver v1.21.5 k8s.gcr.io/kube-proxy v1.21.5 k8s.gcr.io/kube-controller-manager v1.21.5 k8s.gcr.io/kube-scheduler v1.21.5 docker/desktop-vpnkit-controller v2.0 docker/desktop-storage-provisioner v2.0 k8s.gcr.io/pause 3.4.1 k8s.gcr.io/coredns/coredns v1.8.0 k8s.gcr.io/etcd 3.4.13-0

上述鏡像下載完成后,通過docker桌面軟件啟動k8s即可,這里啟動時間相對偏長,啟動成功之后界面左下角K8S顯示綠色狀態:

2、環境查看

# 查看版本:kubectl version Client Version GitVersion:v1.21.5 Server Version GitVersion:v1.21.5# 查看集群:kubectl cluster-info Kubernetes control plane is running at local-host:6443# 查看節點:kubectl get nodes NAME STATUS ROLES AGE VERSION docker-desktop Ready control-plane,master 23h v1.21.5

三、部署Docker鏡像

1、核心組件

在執行Docker鏡像部署之前,首先要理解該流程中幾個核心的概念:

  • Pod:是可以在Kubernetes中創建和管理的、最小的可部署的計算單元;就Docker概念的術語而言,Pod類似于共享命名空間和文件系統卷的一組Docker容器;
  • ReplicaSet:目的是維護一組在任何時候都處于運行狀態的Pod副本的穩定集合;通常用來保證一定數量的、完全相同的Pod的可用性;
  • Deployment:為Pods和ReplicaSets提供聲明式的更新能力,可以定義Deployment以創建新的ReplicaSet,或刪除現有Deployment;
  • Service:抽象的方式將運行在一組Pods上的應用程序公開為網絡服務,在K8S中邏輯上Pods集合與訪問策略,這種模式被稱為微服務;

2、腳本文件

這里將Deployment與Service放在一個.yaml文件中;鏡像加載設置imagePullPolicy:Never即本地讀取;其中服務發現采用的是NodePort類型,并沒有設置具體端口,控制平面會在默認范圍內分配一個端口號;

--- apiVersion: apps/v1 kind: Deployment metadata:name: cloud-app-deploymentlabels:app: cloud-app spec:selector:matchLabels:app: cloud-apptemplate:metadata:labels:app: cloud-appspec:containers:- name: cloud-appimage: Cloud_Url/cicada-image/cloud-appimagePullPolicy: Neverports: - containerPort: 8079 --- apiVersion: v1 kind: Service metadata:name: cloud-app-servicelabels:app: cloud-app spec:type: NodePortports: - port: 8080targetPort: 8079selector:app: cloud-app

3、資源管理

創建資源

kubectl create -f pod.yaml

查看資源

# 1、查看Pod信息 kubectl get pods -o wide# 2、查看Service信息 kubectl get svc -o wide# 3、查看Node信息 kubectl get nodes -o wide

也可以在K8S的Web控制臺上,查看資源的可視化界面,下面截圖幾個腳本中明確聲明的資源信息:

刪除資源

# 1、通過文件刪除 kubectl delete -f pod.yaml# 2、通過具體資源名刪除 kubectl delete pod cloud-app

4、訪問資源

# 查看服務的詳細描述 kubectl describe svc cloud-app-service Name: cloud-app-service NodePort: <unset> 30930/TCP Endpoints: Pod_IP:Pod_端口

這里NodePort端口默認分配30930,當外部訪問流量到達Service時,會路由到指定Endpoints(端點),通過上面的資源查看可知,這里Endpoints即Pod的IP與端口;

通過:本機IP:分配端口/API方式,即localhost:30930/client訪問到docker容器中應用,也可以在Web界面的Pod模塊查看具體的日志輸出:

四、控制臺組件

Dashboard是基于Web的Kubernetes用戶界面,可以使用Dashboard將容器應用部署到Kubernetes集群中,也可以對容器應用排錯,還能管理集群資源,查看日志等。

1、創建命名空間

kubectl create namespace cm-dev

查看命名空間

2、查看Pod

3、查看Deployment

4、查看Service

五、源代碼地址

GitEE·地址 https://gitee.com/cicadasmile/butte-auto-parent Wiki·地址 https://gitee.com/cicadasmile/butte-java-note

總結

以上是生活随笔為你收集整理的自动化集成:Kubernetes容器引擎详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。