考虑一个包含 aReact UI和 a的泊坞窗图像Spring REST app。我想这个部署到Azure的Web应用程序集装箱,其中实例的URL打UI它的端口被静态地提供5000,而Spring app被监听8080。的UI与所述连通Spring app经由HTTP,因此请求所做出UI的Spring app在用户的机器上的评价(即不能访问Spring app通过localhost:8080)。但是,8080默认运行命令中未映射端口。另一个问题是 Web 应用程序只有一个 URL。
默认运行命令是:(从通过 FTP 登录并检查 docker 日志)
docker run -d -p <WEB_APP_PORT>:<UI_PORT> --name ... -e ... <IMG>
Run Code Online (Sandbox Code Playgroud)
我可以运行自定义docker run命令来公开UI_PORT和SPRING_PORT并设置一个具有两个 URL 的 Web 应用程序吗?
如果没有,是否有其他解决方案?
对于上下文:
最终映像是通过扩展一个只包含Spring app(即FROM openjdk:8-jdk-alpine)和安装节点和 UI 的映像来构建的。
一个entrypoint.sh脚本同时启动 …
我正在尝试使用Azure管理API创建Kubernetes集群。
var credentials = SdkContext.AzureCredentialsFactory
.FromFile(Environment.GetEnvironmentVariable("AZURE_AUTH_LOCATION"));
var azure = Azure
.Configure()
.WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
.Authenticate(credentials)
.WithDefaultSubscription();
var kubernetesCluster = azure.KubernetesClusters.Define("aks").WithRegion(Region.EuropeWest)
.WithNewResourceGroup("aksResourceGroup").WithLatestVersion().WithRootUsername("aksUsername")
.WithSshKey(sshPublicKey).WithServicePrincipalClientId("clientId")
.WithServicePrincipalSecret("secret").DefineAgentPool("ap").WithVirtualMachineCount(1)
.WithVirtualMachineSize(ContainerServiceVirtualMachineSizeTypes.StandardA0).Attach()
.WithDnsPrefix("dns-aks").Create();
Run Code Online (Sandbox Code Playgroud)
在最后一行中,将引发CloudException消息:找不到订阅[]。
即使引发异常,也会创建资源组,但资源组为空。
我已使用带有该服务主体的Azure CLI登录并且已经运行
az account list
Run Code Online (Sandbox Code Playgroud)
响应如下:
[
{
"cloudName": "AzureCloud",
"id": "SUBSCRIPTION ID FROM EXCEPTION ABOVE",
"isDefault": true,
"name": "Pay-As-You-Go",
"state": "Enabled",
"tenantId": "xxx",
"user": {
"name": "xxxx",
"type": "servicePrincipal"
}
}
]
Run Code Online (Sandbox Code Playgroud)
应用程序注册位于Azure Active Directory>应用程序注册>所有应用程序中。我什至授予了所有可能的API的权限。
为了接收该异常消息,我做错了什么吗?
我在Azure中部署了一个Linux应用服务,使用来自私有Azure容器注册表的映像.
服务正常运行,尽管没有对映像进行任何更改(没有新的推送),但App Service已经重新部署.我理解这是Azure如何处理容器,在其认为合适时交换实例的预期部分.
但是,此映像不再能够成功部署,以下是来自Kudu的日志(名称已更改):
2018-04-09 07:28:11.817 INFO - Starting container for site
2018-04-09 07:28:11.818 INFO - docker run -d -p 36165:8080 --name my-service_0 -e WEBSITES_ENABLE_APP_SERVICE_STORAGE=false -e WEBSITES_PORT=8080 -e WEBSITE_SITE_NAME=my-service -e WEBSITE_AUTH_ENABLED=False -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_INSTANCE_ID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -e HTTP_LOGGING_ENABLED=1 myacr.azurecr.io/images/my-image:latest
2018-04-09 07:28:14.200 INFO - Issuing docker pull myacr.azurecr.io/images/my-image:latest
2018-04-09 07:28:14.327 ERROR - docker pull returned STDERR>> Error response from daemon: Get https://myacr.azurecr.io/v2/images/my-image/manifests/latest: unauthorized: authentication required
Run Code Online (Sandbox Code Playgroud)
以下是在本地提取图像的结果:
docker pull myacr.azurecr.io/images/my-image:latest
latest: Pulling from images/my-image
53478ce18e19: Already exists
d1c225ed7c34: Already exists
c6724ba0c09a: Already exists …Run Code Online (Sandbox Code Playgroud) azure-web-sites azure-container-service azure-container-registry
我已经使用 Azure CLI(az acs create命令)部署了一个 Kubernetes 集群。集群中的节点正在运行 Windows。
我想关闭并重新启动一个工作节点。
我试图kubectl drain从集群中删除节点。这有效并且节点状态更改为“就绪,调度禁用”
然后我使用 Azure 门户关闭节点。此时节点状态变为'NotReady, SchedulingDisabled'
然后我使用 Azure 门户重新启动节点。但是,节点状态仍为'NotReady, SchedulingDisabled'。我期待它变成“准备好,SchedulingDisabled”,然后能够运行kubectl uncordon以使其再次可用。
在 Kubernetes 集群中关闭和重启节点的推荐流程是什么?
我尝试过取消注册并重新注册,但它总是卡住。我看不到日志,所以我真的不知道该怎么做......
有谁之前经历过这个吗?
azure azure-resource-manager azure-container-service azure-aks
是否有关于持续部署到Azure容器实例的最佳实践,以便保留公共IP?或者将Azure保留IP映射到ACI在部署时绑定的动态IP?
我在MS Azure中的生产环境中启用了两个群集的多区域HA。
我被要求重用同一集群以使用微服务管理多个新项目。
最佳做法是什么?我应该为每个应用程序创建一个集群吗?更好地将每个项目隔离在不同的集群和云帐户中吗?
期待意见。
谢谢。
Azure 支持要求我在这里提出这个问题,但我认为这是一个 AKS 错误。
部署集群时,每个节点“node.status.addresses”都应该按照设计显示节点的 externalip 或主机名,但主机名地址中有一个 VM 名称,而不是 AKS 制作的集群中的虚拟机名称。由于我们需要它们的各种原因,这使得很难知道节点公共 ip。
是否有任何标准或非标准的方式来获取节点公共 ip ?
我使用以下快速入门文档来启动我的第一个 Azure 容器。
https://learn.microsoft.com/en-us/azure/container-instances/container-instances-quickstart#feedback
效果很好。但是如果我想调试某些东西,如何连接到容器?
我正在尝试学习 Azure DevOps Pipelines 和 AKS。最终目标是构建并部署到 Azure Kubernetes 服务,但我将其分解为更小的部分,以便了解每个阶段发生的情况。
因此,我当前的目标是构建并推送到 Azure 容器注册表。
我正在使用一个非常基本的 monorepo,它具有以下简化的结构:
acr-test/
client/
Dockerfile
db/
Dockerfile
server/
Dockerfile
Run Code Online (Sandbox Code Playgroud)
我想为应用程序的每个部分生成一个图像,以便生成一个arc-test-client和。arc-test-server
当我在 Azure DevOps 中“创建管道”并让它构建时,当前发生的情况azure-pipelines.yml是它只是找到第一个Dockerfile并基于它的所有参数,而忽略其他参数。
有些我很好奇:
azure-pipelines.yml?.yml每个我都需要多个吗Dockerfile?.sh来单独构建和推送它们(示例)?