一、介紹
Kubernetes (K8s) 是一個開源的、自動化的、跨平台的容器編排系統。K8s 以容器為基礎,提供了自動部署、自動擴展、自動故障恢復等一系列功能,是現代應用開發中不可或缺的基礎設施。本文將介紹如何在 Kubernetes 中通過 YAML 文件部署 Redis。
二、準備工作
在開始之前,我們需要準備好以下環境:
1. Kubectl 工具:用於部署應用到 Kubernetes 集群中
2. Redis Docker 鏡像:用於創建 Redis 容器
可以使用以下命令檢查是否已經安裝 Kubectl 工具:
kubectl version
如果沒有安裝,可以使用以下命令在 Linux 系統上進行安裝:
curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
可以使用以下命令檢查是否已經安裝 Docker 鏡像:
docker version
如果沒有安裝,可以使用以下命令在 Linux 系統上進行安裝:
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
我們還需要下載 Redis 鏡像,可以使用以下命令:
docker pull redis
三、部署 Redis
在使用 Kubernetes 部署 Redis 之前,我們需要先創建一個 Redis 鏡像的 Deployment 對象,該對象用於描述需要部署到 Kubernetes 集群中的 Redis 容器。可以使用以下 YAML 文件描述 Redis 的 Deployment 對象:
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis
labels:
app: redis
spec:
replicas: 1
selector:
matchLabels:
app: redis
template:
metadata:
labels:
app: redis
spec:
containers:
- name: redis
image: redis
ports:
- containerPort: 6379
在本 YAML 文件中:
1. apiVersion: apps/v1 表示使用 Kubernetes 的版本是 v1
2. kind: Deployment 表示創建一個 Deployment 對象
3. metadata 表示部署的名稱和標籤
4. spec 表示部署的規格,replicas 表示需要運行的副本數量,selector 表示選取要進行增刪操作的 Deployment 實例的標籤,template 表示如何創建容器的模板
5. containers 中定義了容器的名稱、鏡像、以及需要暴露的埠
使用以下命令創建 Redis 的 Deployment:
kubectl apply -f redis-deployment.yaml
然後我們需要在 Redis 的 Deployment 對象上創建一個 Service
在 Kubernetes 中,Service 可以用來為後端 Pod 暴露一個固定的 IP 地址和埠,以方便提供 HTTP 或者 TCP 服務。使用以下 YAML 文件描述 Redis 的 Service 對象:
apiVersion: v1
kind: Service
metadata:
name: redis
spec:
selector:
app: redis
ports:
- name: redis
port: 6379
targetPort: 6379
在本 YAML 文件中:
1. apiVersion: v1 表示定義一個 v1 版本的 Service 對象
2. kind: Service 表示創建一個 Service 對象
3. metadata 表示 Service 的名稱
4. selector 表示需要將該 Service 和那些標籤匹配
5. ports 表示暴露的埠號
使用以下命令創建 Redis 的 Service:
kubectl apply -f redis-service.yaml
同時檢查狀態是否正確:
kubectl get deploy redis
kubectl get svc redis
四、測試 Redis
現在 Redis 已經部署完成,我們可以通過一些命令來檢查 Redis 是否可以正常運行。
首先使用以下命令獲取 Redis 的 IP 和埠號:
kubectl get svc redis
然後,我們需要連接到這個 Redis 的實例:
redis-cli -h [REDIS_IP_ADDRESS] -p [REDIS_PORT]
在連接後,我們可以使用以下命令設置一個 key/value:
set mykey "Hello World"
使用以下命令獲取該 key 的 value:
get mykey
如果返回的值是 “Hello World”,那麼說明 Redis 已經成功部署並且可以正常運行。
五、結束語
Kubernetes 是一個功能強大的容器編排系統,可以用來自動化部署、擴展、恢復容器化應用程序。在本文中,我們通過一個簡單的例子演示了如何在 Kubernetes 中通過 YAML 文件部署 Redis。
本文所涉及的內容只是入門級別的內容,關於 Kubernetes 的更多用法和概念,建議大家自行查閱 Kubernetes 的官方文檔。
原創文章,作者:TWGGI,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/351597.html