天天看點

一篇就讓小白入門K8S,使用Minikube來搭建本地的單節點K8S叢集

作者:不背鍋運維

開篇

Kubernetes(通常簡稱為K8s)是一個開源的容器編排平台,它為應用程式的部署、擴充和管理提供了強大的工具和功能。在本文中,我們将通過一個實戰案例,引導您進入Kubernetes的世界,了解其基本概念和架構,并幫助您安裝和配置一個簡單的Kubernetes叢集。

Kubernetes概述

Kubernetes是一個可擴充的開源平台,用于自動化容器化應用程式的部署、擴充和管理。它提供了一個統一的容器編排系統,可以在多個主機上運作、排程和管理容器化的應用程式。

開始實戰

背景:假設您正在開發一個Web應用程式,并希望使用Kubernetes将其容器化并在生産環境中部署和管理。我們将使用Minikube工具來搭建本地的單節點Kubernetes叢集,并部署一個簡單的Nginx Web伺服器。

安裝和配置Kubernetes叢集

在本案例中,我們将使用Minikube工具來搭建本地的Kubernetes叢集,以便在開發環境中進行實驗和測試。按照以下步驟進行安裝和配置:

  1. 安裝Docker和kubectl指令行工具:
# 安裝Docker
sudo apt-get update
sudo apt-get install docker.io

# 安裝kubectl
sudo snap install kubectl --classic
           
  1. 安裝Minikube,并啟動一個本地的Kubernetes叢集:
# 安裝Minikube
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
chmod +x minikube
sudo mv minikube /usr/local/bin/

# 啟動Minikube叢集
minikube start
           
  1. 驗證叢集是否成功啟動,并使用kubectl與叢集進行互動:
# 驗證叢集狀态
kubectl cluster-info

# 檢視節點狀态
kubectl get nodes
           
  1. 建構Docker鏡像

在将應用程式部署到Kubernetes叢集之前,我們需要将應用程式打包為Docker鏡像。按照以下步驟建構鏡像:

a. 建立一個Dockerfile,定義應用程式的建構過程和運作環境:

# Dockerfile
FROM nginx:latest
COPY index.html /usr/share/nginx/html/index.html
           

b. 使用Docker指令建構鏡像:

# 建構鏡像
docker build -t my-nginx-app:v1 .
           

c. 驗證鏡像是否成功建構,并推送到Docker鏡像倉庫(可選)。

  1. 建立Kubernetes資源對象

在Kubernetes中,我們使用資源對象來定義應用程式的部署、服務和通路規則。按照以下步驟建立資源對象:

a. 建立一個Deployment對象,定義應用程式的副本數、容器鏡像和其他配置:

# 建立Deployment
kubectl create deployment my-nginx --image=my-nginx-app:v1
           

b. 建立一個Service對象,定義應用程式的通路方式和負載均衡規則:

# 建立Service
kubectl expose deployment my-nginx --type=LoadBalancer --port=80
           

c. 驗證資源對象是否成功建立,并檢查應用程式的部署和運作狀态:

# 檢視Deployment狀态
kubectl get deployments

# 檢視Service狀态
kubectl get services
           
  1. 應用程式的擴充和更新

Kubernetes提供了靈活的擴充和更新機制,可以根據需要調整應用程式的副本數,并進行版本更新。按照以下步驟進行應用程式的擴充和更新:

a. 使用kubectl指令擴充Deployment的副本數,實作應用程式的水準擴充:

# 擴充副本數
kubectl scale deployment my-nginx --replicas=3
           

b. 更新應用程式的鏡像版本,并使用kubectl指令進行滾動更新:

# 更新鏡像版本
kubectl set image deployment/my-nginx my-nginx-app=my-nginx-app:v2
           

c. 監控應用程式的擴充和更新過程,確定系統的穩定性和可用性。

  1. 清理資源對象和叢集

在完成實驗和測試後,為了釋放資源和避免不必要的費用,我們需要清理Kubernetes資源對象和叢集。按照以下步驟進行清理:

a. 使用kubectl删除Deployment和Service對象:

# 删除Deployment
kubectl delete deployment my-nginx

# 删除Service
kubectl delete service my-nginx
           

b. 停止并删除Minikube叢集:

# 停止Minikube叢集
minikube stop

# 删除Minikube叢集
minikube delete
           

最後

通過本文的實戰案例,我們了解了Kubernetes的基本概念和架構,并學習了如何安裝、配置和使用Kubernetes來部署和管理容器化應用程式。希望這篇文章能夠幫助您入門Kubernetes,并為您未來的容器化開發和運維工作提供一些指導和啟示。

本文轉載于WX公衆号:不背鍋運維(喜歡的盆友關注我們):https://mp.weixin.qq.com/s/JKeAPRW7c4B4IFlDWwTfzQ

繼續閱讀