我有一个。奇怪的是 DO 实际上很聪明,没有文档
因为它不必。您可以回收 Google 和 Azure 的 K8
在 DO 集群上工作的文档。关键区别只是
在我想的命名中,可能会有更多的区别,但是
到目前为止,我在应用指令时没有遇到任何问题
GCP 的文档。
https://nozomi.one 在 DO 的 k8 集群上运行。
这是一个很棒的dotnetcore-digitalocean-k8。
您可能/将会面临的错误:
在此处推送秘密文件(建议仅用于暂存或以下,除非您有超级秘密的方式来部署它):
kubectl create secret generic secret-appsettings --from-file=./appsettings.secrets.json
然后创建一个类似这样的部署配置。请注意,我们在最后几行添加了 appsettings:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: xxxxx
spec:
replicas: 3
template:
metadata:
labels:
app: xxxxx
spec:
containers:
- name: xxxxx
image: xxxxx/xxxxxx:latest
ports:
- containerPort: 80
env:
- name: "ASPNETCORE_ENVIRONMENT"
value: "Production"
volumeMounts:
- name: secrets
mountPath: /app/secrets
readOnly: true
volumes:
- name: secrets
secret:
secretName: secret-appsettings
部署这个脚本很简单:
kubectl create -f deployment.yaml
如果你想先在 docker 本地测试:
docker run --rm -p 8080:8080 gcr.io/${PROJECT_ID}/test-app:v1
总而言之,以上所有内容都将帮助您部署 pod。
您需要了解以这种系统方式部署新项目/应用程序:
- 创建部署,即为您拉取映像并创建将部署到节点的 pod。
- 创建一个服务,它将正确的端口和更多(从未尝试过做更多的事情)指向您的应用程序。
这是服务的样子:
apiVersion: v1
kind: Service
metadata:
name: nozweb
spec:
type: LoadBalancer
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 80
selector:
app: nozweb
始终确保 spec:selector:app 明确如下:
spec:
replicas: 3
template:
metadata:
labels:
app: xxxxx
在您的部署配置中。这就是它们的符号链接方式。
- 创建一个入口(可选),这将有助于充当您的 .NET Core 应用/项目的反向代理。 这是可选的,因为我们让 kestrel 运行了!