У меня развернуто веб-приложение на AKS, и оно обычно работает нормально.Сейчас я пытаюсь расширить его функциональность, добавив доступ к Azure sql.
Мы используем VSTS / Azure DevOps для развертывания.
Я развернул секрет в кластере с помощью команды:
kubectl secret generic sampleapp-appsettings --from-literal=DBConnectionString="$(var_DBConnectionString)"
Я проверил кластерс приборной панели kubernetes и можно увидеть, что он был развернут, как ожидалось.Секретом является строка подключения к базе данных
Однако я изо всех сил пытаюсь извлечь секрет из развернутых модулей.Я создал переменную среды для ASPNETCORE_ENVIRONMENT со значением для Kubernetes.
Вот часть моего развертывания yaml:
spec:
containers:
- name: sampleapp-services
image: sampleapp.azurecr.io/sampleapp-services:latest
imagePullPolicy: Always
env:
- name: "ASPNETCORE_ENVIRONMENT"
value: "Kubernetes"
- name: services-appsettings
valueFrom:
secretKeyRef:
name: services-appsettings
key: DBConnectionString
ports:
- containerPort: 80
Я добавил конечную точку API в свое приложение дляв целях отладки и может видеть, что значение ASPNETCORE_ENVIRONMENT извлекается правильно.
однако значение DBConnectionString неправильно извлекается из секрета kubernetes.вместо этого он извлекается из файла appsettings.json.У меня есть некоторый код в моем приложении, который просто выводит значения:
[HttpGet("settings")]
public ActionResult<string> GetAppSettings()
{
var message = $"Host: {Environment.MachineName}\n" +
$"EnvironmentName: {_env.EnvironmentName}\n" +
$"Secret value: {_dataSettings.ConnectionString}";
return message;
}
в моем классе DataSettings У меня есть такой код:
var value = Environment.GetEnvironmentVariable("DBConnectionString");
Однако это нене извлекаю секретное значение из кластера kubernetes, которое я ожидаю.
Я следовал некоторым примерам, подобным этому - но они не помогают.
blog
У кого-нибудь есть простой шаг за шагоминструкции / образцы, которые могут помочь?
спасибо