kubernetes - 环境变量不适用于整数
kubernetes - environment variables not works with integers
我在 "docker" 中有一个 .netcore Web 应用程序 运行。于是开始用kubernetes来集群。在 appsettings.json 上有四个配置将由环境变量转换(都在“${}”之间):
{
"ConnectionSettings": [
{
"id": "${connectionSettings.connectionString.idMongoDb}",
"databaseName": "${connectionSettings.connectionString.databaseName}",
"connectionString": "${connectionSettings.connectionString.mongoDB}"
}
],
{
"Key": "Token.Issuer",
"Value": "${configuration.token.issuer}",
"Description": "",
"ModifiedDate": "2018-05-05 00:00:00.0000000",
"ModifiedBy": "system",
"AllowedProfiles": 1
}
}
这是我的 .yaml 文件的一点:
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-dev-api-dep
labels:
app: myapp-dev-api-dep
tier: app
version: v1
spec:
selector:
matchLabels:
app: myapp-dev-api
tier: app
version: v1
replicas: 1
template:
metadata:
labels:
app: myapp-dev-api
tier: app
version: v1
spec:
containers:
- name: myapp-dev-api
image: 'myappapi_tstkube:latest'
env:
- name: connectionSettings.connectionString.mongoDB
value: mongodb://192.168.20.99:27017
- name: configuration.token.issuer
value: '86400'
ports:
- name: http
containerPort: 80
protocol: TCP
livenessProbe:
initialDelaySeconds: 30
periodSeconds: 3600
httpGet:
path: /swagger/index.html
port: 80
resources:
requests:
cpu: 25m
memory: 200Mi
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
restartPolicy: Always
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 25%
maxSurge: 25%
看看我的配置:
变量“connectionSettings.connectionString.mongoDB”有效。但是变量“configuration.token.issuer”不能在appsetting上替换。
做了一些测试。我只发现了数字变量的问题。
有没有人有想法或者你有问题吗?
vlw
您必须对数字使用 ASCII 码。所以你的部署规范看起来像
env:
- name: connectionSettings.connectionString.mongoDB
value: "mongodb://192.168.20.99:27017"
- name: configuration.token.issuer
value: "\x38\x36\x34\x30\x30"
并检查环境变量:
sukhoversha@sukhoversha:~/GCP$ kubectl exec myapp-dev-api-dep-7948866b56-6cnmk env | grep con
connectionSettings.connectionString.mongoDB=mongodb://192.168.20.99:27017
configuration.token.issuer=86400
问题出在yamls识别码上。 yaml文件中的错误space可能有很多问题
https://github.com/helm/helm/blob/master/docs/chart_template_guide/yaml_techniques.md
关于人数。两个答案都对。可以用单引号 '86400' 和 ACII "\x38\x36\x34\x30\x30".
谢谢大家
我在 "docker" 中有一个 .netcore Web 应用程序 运行。于是开始用kubernetes来集群。在 appsettings.json 上有四个配置将由环境变量转换(都在“${}”之间):
{
"ConnectionSettings": [
{
"id": "${connectionSettings.connectionString.idMongoDb}",
"databaseName": "${connectionSettings.connectionString.databaseName}",
"connectionString": "${connectionSettings.connectionString.mongoDB}"
}
],
{
"Key": "Token.Issuer",
"Value": "${configuration.token.issuer}",
"Description": "",
"ModifiedDate": "2018-05-05 00:00:00.0000000",
"ModifiedBy": "system",
"AllowedProfiles": 1
}
}
这是我的 .yaml 文件的一点:
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-dev-api-dep
labels:
app: myapp-dev-api-dep
tier: app
version: v1
spec:
selector:
matchLabels:
app: myapp-dev-api
tier: app
version: v1
replicas: 1
template:
metadata:
labels:
app: myapp-dev-api
tier: app
version: v1
spec:
containers:
- name: myapp-dev-api
image: 'myappapi_tstkube:latest'
env:
- name: connectionSettings.connectionString.mongoDB
value: mongodb://192.168.20.99:27017
- name: configuration.token.issuer
value: '86400'
ports:
- name: http
containerPort: 80
protocol: TCP
livenessProbe:
initialDelaySeconds: 30
periodSeconds: 3600
httpGet:
path: /swagger/index.html
port: 80
resources:
requests:
cpu: 25m
memory: 200Mi
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
restartPolicy: Always
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 25%
maxSurge: 25%
看看我的配置:
变量“connectionSettings.connectionString.mongoDB”有效。但是变量“configuration.token.issuer”不能在appsetting上替换。
做了一些测试。我只发现了数字变量的问题。
有没有人有想法或者你有问题吗?
vlw
您必须对数字使用 ASCII 码。所以你的部署规范看起来像
env:
- name: connectionSettings.connectionString.mongoDB
value: "mongodb://192.168.20.99:27017"
- name: configuration.token.issuer
value: "\x38\x36\x34\x30\x30"
并检查环境变量:
sukhoversha@sukhoversha:~/GCP$ kubectl exec myapp-dev-api-dep-7948866b56-6cnmk env | grep con
connectionSettings.connectionString.mongoDB=mongodb://192.168.20.99:27017
configuration.token.issuer=86400
问题出在yamls识别码上。 yaml文件中的错误space可能有很多问题
https://github.com/helm/helm/blob/master/docs/chart_template_guide/yaml_techniques.md
关于人数。两个答案都对。可以用单引号 '86400' 和 ACII "\x38\x36\x34\x30\x30".
谢谢大家