初學(xué)Kubernetes,快速入門手冊(cè)!

初學(xué) Kubernetes,快速入門手冊(cè)!

成都創(chuàng)新互聯(lián)是少有的成都網(wǎng)站制作、網(wǎng)站建設(shè)、營(yíng)銷型企業(yè)網(wǎng)站、微信小程序、手機(jī)APP,開發(fā)、制作、設(shè)計(jì)、買鏈接、推廣優(yōu)化一站式服務(wù)網(wǎng)絡(luò)公司,自2013年創(chuàng)立以來(lái),堅(jiān)持透明化,價(jià)格低,無(wú)套路經(jīng)營(yíng)理念。讓網(wǎng)頁(yè)驚喜每一位訪客多年來(lái)深受用戶好評(píng)

隨著云計(jì)算技術(shù)的發(fā)展,容器化已經(jīng)成為了最流行的應(yīng)用部署方式之一。而 Kubernetes 作為容器編排工具的代表,已經(jīng)成為了容器編排的領(lǐng)袖。本文將為初學(xué) Kubernetes 的讀者提供一個(gè)快速入門手冊(cè),幫助讀者了解 Kubernetes 的基本概念和使用方法。

什么是 Kubernetes?

Kubernetes (k8s) 是一個(gè)用于部署、管理和擴(kuò)展容器化應(yīng)用的開源平臺(tái)。它最初是由 Google 開發(fā)的,現(xiàn)在已走向開源社區(qū)并由 Cloud Native Computing Foundation (CNCF) 托管。Kubernetes 提供了一種通用的容器編排模型,可以管理包括 Docker 等在內(nèi)的多種容器平臺(tái)。

Kubernetes 的架構(gòu)

在了解如何使用 Kubernetes 之前,需要先了解其架構(gòu)。Kubernetes 的架構(gòu)如下:

![Kubernetes Architecture](https://miro.medium.com/max/1400/1*Fo1Vm0FFg3eBdCnq3e1n_Q.png)

Master 節(jié)點(diǎn)由多個(gè)組件組成,包括:

- Kubernetes API Server:負(fù)責(zé)處理 API 請(qǐng)求,是 Kubernetes 系統(tǒng)的前端。

- etcd:一個(gè)高可用的鍵值存儲(chǔ)系統(tǒng),用于存儲(chǔ) Kubernetes 集群的各種信息。

- Kubernetes Controller-Manager:負(fù)責(zé)處理不同資源的控制器,例如部署和服務(wù)等。

- Kubernetes Scheduler:負(fù)責(zé)對(duì)集群中的應(yīng)用進(jìn)行調(diào)度和分配。

Node 節(jié)點(diǎn)是運(yùn)行容器的機(jī)器,由以下組件組成:

- Kubelet:與 Kubernetes API Server 進(jìn)行通信,并處理 Master 節(jié)點(diǎn)分配給它的任務(wù)。

- Kube-Proxy:負(fù)責(zé)實(shí)現(xiàn) Kubernetes Service 的網(wǎng)絡(luò)代理。

- Container Runtime:容器運(yùn)行時(shí),如 Docker。

Kubernetes 對(duì)象

Kubernetes 的核心是對(duì)象,可以使用 Kubernetes API 對(duì)這些對(duì)象進(jìn)行管理。下面是一些常用的 Kubernetes 對(duì)象:

- Deployment:定義了應(yīng)用的期望運(yùn)行狀態(tài),Kubernetes 將嘗試始終使應(yīng)用處于該狀態(tài)。

- Service:定義了一個(gè)邏輯應(yīng)用,其行為類似于一個(gè)負(fù)載均衡器,提供了一個(gè)穩(wěn)定的 IP 和 DNS 名稱以便其他應(yīng)用可以訪問它。

- Pod:是一個(gè)或多個(gè)容器的集合,它們?cè)谕粋€(gè)節(jié)點(diǎn)上運(yùn)行,并共享同樣的存儲(chǔ)和網(wǎng)絡(luò)資源。

在 Kubernetes 中創(chuàng)建對(duì)象需要使用 YAML 或 JSON 文件來(lái)描述對(duì)象的規(guī)范。下面是一個(gè)簡(jiǎn)單的 Deployment YAML 示例:

yaml

apiVersion: apps/v1

kind: Deployment

metadata:

name: hello-world

spec:

selector:

matchLabels:

app: hello-world

replicas: 3

template:

metadata:

labels:

app: hello-world

spec:

containers:

- name: hello

image: hello-world

ports:

- containerPort: 80

在上述示例中,我們定義了一個(gè)應(yīng)用的名稱為 hello-world 的 Deployment,將其擴(kuò)展為三個(gè) Pod,每個(gè) Pod 包含一個(gè)名為 hello 的容器,以及將容器端口映射到主機(jī)端口 80。Kubernetes 命令行工具在使用 Kubernetes 時(shí),可以使用以下命令行工具:- kubectl:Kubernetes 的命令行客戶端,用于與 Kubernetes API 通信。- kubeadm:用于初始化和管理 Kubernetes 集群的命令行工具。- minikube:可以在本地快速啟動(dòng)一個(gè) Kubernetes 集群的工具。- k9s:一個(gè)命令行的 Kubernetes 管理工具,可以方便地查看和管理 Kubernetes 的資源對(duì)象。Kubernetes 的使用接下來(lái),我們將介紹如何使用 Kubernetes。首先需要在本地或遠(yuǎn)程操作系統(tǒng)上安裝 Kubernetes,可以通過 Minikube 快速啟動(dòng)一個(gè) Kubernetes 集群。安裝 kubectl 后,可以使用以下命令檢查集群狀態(tài):

$ kubectl cluster-info

Kubernetes master is running at https://192.168.99.100:8443

KubeDNS is running at https://192.168.99.100:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

創(chuàng)建一個(gè) Deployment 和 Service 可以使用以下命令:

$ kubectl create deployment hello-world --image=gcr.io/hello-minikube-zero-install/hello-go

$ kubectl expose deployment hello-world --type=NodePort --port=8080

上述命令分別創(chuàng)建了一個(gè)名為
hello-world` 的 Deployment,并將其暴露為一個(gè)類型為 NodePort 的 Service。可以使用以下命令查看 Service 的信息:

$ kubectl get service hello-world

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE

hello-world NodePort 10.107.71.111 8080:30929/TCP 30m

在 Kubernetes 中通過以下命令查看 Pod 的信息:

$ kubectl get pod

NAME READY STATUS RESTARTS AGE

hello-world-84dd5cb4db-mv87j 1/1 Running 0 11m

可以使用以下命令訪問部署在 Kubernetes 集群上的應(yīng)用:

$ curl http://:

Hello, World!

結(jié)論

通過本文,讀者可以對(duì) Kubernetes 的基本概念和使用方法有一個(gè)初步的認(rèn)識(shí)。相信通過上述介紹,初學(xué) Kubernetes 的讀者已經(jīng)能夠快速入門并開始使用 Kubernetes 來(lái)管理容器化應(yīng)用。

分享名稱:初學(xué)Kubernetes,快速入門手冊(cè)!
網(wǎng)頁(yè)地址:http://www.muchs.cn/article38/dgphepp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、域名注冊(cè)、自適應(yīng)網(wǎng)站、定制網(wǎng)站、網(wǎng)站導(dǎo)航手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)