kubernetes(K8S)
K8S是用於自動部署,擴展和管理容器化應用程序的開源系統。
開發環境配置
Kubernetes很多鏡像國內無法穩定訪問,可參見k8s-for-docker-desktop進行配置。
- 配置成功後先執行命令
kubectl version
查看kutectl
是否安裝成功
- 查看Dashboard
Windows環境下執行命令獲取登錄令牌
$TOKEN=((kubectl -n kube-system describe secret default | Select-String "token:") -split " +")[1]
kubectl config set-credentials docker-for-desktop --token="${TOKEN}"
echo $TOKEN
部署ASP.NET Core應用到K8S
- 將應用打包成docker鏡像,並push到docker倉庫
docker build -t ImageName:TAG .
docker push ImageName:TAG
- 先配置一個命名空間
kubectl create namespace aspnetcore
- 編寫
deploy YAML
apiVersion: apps/v1
kind: Deployment
metadata:
name: skyline-api
namespace: aspnetcore
labels:
k8s-app: skyline-api
spec:
replicas: 1
selector:
matchLabels:
k8s-app: skyline-api
template:
metadata:
labels:
k8s-app: skyline-api
spec:
containers:
- name: skyline-api
image: YourDockerHubId/skyline-api:dev
ports:
- containerPort: 80
imagePullPolicy: Always
---
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: skyline-api
namespace: aspnetcore
spec:
type: NodePort
ports:
- port: 80
targetPort: 80
selector:
k8s-app: skyline-api
- 部署到K8S
kubectl create -f deploy.yml
查看dashboard,可以看到已成功部署
或者直接執行命令
kubectl get svc -n aspnetcore
找到此命名空間下的服務
可以看到運行在30534端口,訪問一下,可以看到已成功獲取到接口數據