Я разработал простое демонстрационное приложение с использованием IdentityServer4, которое можно развернуть как микросервис.Работает на Docker для Windows без проблем.Однако я не могу заставить его работать на AKS и не знаю почему.Вот мой класс запуска:
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
services.AddCors(options =>
{
options.AddPolicy("CorsPolicy",
b => b.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials());
});
var host = Configuration.GetSection("Hosts")?.GetSection("Externals")?.GetSection("CurrentUri")?.Value;
services.AddIdentityServer()
.AddDeveloperSigningCredential()
.AddInMemoryApiResources(InMemoryConfiguration.ApiResources())
.AddInMemoryClients(InMemoryConfiguration.Clients())
.AddTestUsers(InMemoryConfiguration.Users().ToList())
.AddJwtBearerClientAuthentication();
Вы можете посмотреть весь код приложения здесь .
Затем я разверну его с помощью файла yaml:
apiVersion: v1
kind: Service
metadata:
name: identity
labels:
app: identity
spec:
ports:
- port: 80
targetPort: 7066
protocol: TCP
name: http
selector:
app: identity
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: identity
spec:
replicas: 1
template:
metadata:
labels:
app: identity
version: v1
spec:
containers:
- name: identity
image: registry.hub.docker.com/przemekwojcik/identity:latest
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 7066
resources:
requests:
memory: "400Mi"
cpu: "100m"
limits:
memory: "400Mi"
cpu: "100m"
После того, как модуль успешно развернут и запущен, я использую переадресацию портов с помощью kubectl:
kubectl port-forward identity-b59787975-7b6l7 7066:7066
, когда я пытаюсь просмотреть его, вот что я получаю:
Сервер не вернул полный ответ на этот запрос.Сервер вернул 0 байт.