chore: Add kubernetes deployment (#605)
* add kubernetes deployment * add kubernetes deployment README * update deployment README * update deployment yaml
This commit is contained in:
parent
c50c19a78f
commit
f464536282
|
|
@ -0,0 +1,64 @@
|
||||||
|
# 快速入门指南
|
||||||
|
|
||||||
|
本指南旨在帮助您在 Kubernetes 中部署基于 `wcjiang/linux-command` 镜像的 `linux-command` 应用。该应用提供了一套 `Deployment`,并通过 `Service` 对外暴露服务端口。
|
||||||
|
|
||||||
|
## 前提条件
|
||||||
|
|
||||||
|
- 已安装并配置好的 Kubernetes 集群
|
||||||
|
- 安装并配置好的 `kubectl`,并连接至你的 Kubernetes 集群
|
||||||
|
|
||||||
|
## 安装步骤
|
||||||
|
|
||||||
|
我们将使用此存储库中的`kubectl`应用 YAML 文件,该文件将安装 `linux-command` 应用。
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ kubectl apply -f https://raw.githubusercontent.com/jaywcjlove/linux-command/master/deploy/yamls/linux-command.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
检查 `Deployment` 状态:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ kubectl get deployments -n linux-command
|
||||||
|
NAME READY UP-TO-DATE AVAILABLE AGE
|
||||||
|
linux-command 1/1 1 1 17m
|
||||||
|
```
|
||||||
|
|
||||||
|
你可以查看 `Pod` 的状态以确保其正常运行:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ kubectl get pods -n linux-command
|
||||||
|
NAME READY STATUS RESTARTS AGE
|
||||||
|
linux-command-fff454654-427zp 1/1 Running 0 12m
|
||||||
|
```
|
||||||
|
|
||||||
|
验证 `Service` 是否成功创建并获取暴露的端口:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ kubectl get services -n linux-command
|
||||||
|
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
|
||||||
|
linux-command-service NodePort 10.96.2.225 <none> 9665:30204/TCP 18m
|
||||||
|
```
|
||||||
|
|
||||||
|
## 访问应用
|
||||||
|
|
||||||
|
通过获取 `NodePort` 的端口来访问应用。以下是获取 `NodePort` 服务信息的命令:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ kubectl get svc linux-command-service -n linux-command
|
||||||
|
```
|
||||||
|
|
||||||
|
根据输出,使用 `EXTERNAL-IP:PORT` 访问服务。例如:
|
||||||
|
|
||||||
|
```
|
||||||
|
http://<Node-IP>:<NodePort>
|
||||||
|
```
|
||||||
|
|
||||||
|
## 卸载应用
|
||||||
|
|
||||||
|
如果需要删除已部署的资源,可以按以下顺序操作:
|
||||||
|
|
||||||
|
```
|
||||||
|
kubectl delete -f linux-command.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
这将会清理所有创建的 Kubernetes 资源。
|
||||||
|
|
@ -0,0 +1,50 @@
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: linux-command
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: linux-command
|
||||||
|
namespace: linux-command
|
||||||
|
labels:
|
||||||
|
app: linux-command
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: linux-command
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: linux-command
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: linux-command-container
|
||||||
|
image: wcjiang/linux-command:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
ports:
|
||||||
|
- containerPort: 3000
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: "100m"
|
||||||
|
memory: "50Mi"
|
||||||
|
limits:
|
||||||
|
cpu: "100m"
|
||||||
|
memory: "50Mi"
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: linux-command-service
|
||||||
|
namespace: linux-command
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: linux-command
|
||||||
|
ports:
|
||||||
|
- protocol: TCP
|
||||||
|
port: 9665
|
||||||
|
targetPort: 3000
|
||||||
|
type: NodePort
|
||||||
Loading…
Reference in New Issue