Azure容器服务和容器Web应用程序有什么区别?
他们似乎都提供了一个完全托管的平台,我们可以在其上部署容器.我觉得容器的Web App必须提供更多东西,但我没有看到它.我已经阅读了Azure容器服务常见问题解答和容器介绍页面的Web应用程序,但差异对我来说并不明显.
我在gitlab中有一个容器构建,并使用gitlab自定义注册表进行注册.在这个容器里面是一个运行很长时间的命令.我想以某种方式将此容器部署到azure,并且只根据管理api服务的需要在新容器实例中启动这个长时间运行的进程.我不希望容器一直运行,只是运行命令所花费的时间.
我认为这个admin api可能是Azure"App Services"下托管的经典http rest api服务,或者可能使用Azure的新"功能应用程序"功能.
在我的研究中,我发现使用azure cli命令,我可以像这样启动一个容器:
az container create \
--resource-group myResourceGroup \
--name mycontainer2 \
--image microsoft/aci-wordcount:latest \
--restart-policy OnFailure \
--environment-variables NumWords=5 MinLength=8
Run Code Online (Sandbox Code Playgroud)
https://docs.microsoft.com/en-us/azure/container-instances/container-instances-environment-variables
我想从admin api执行此操作,最好使用看起来像我这里的官方Azure npm包的内容:
https://www.npmjs.com/package/azure
理想情况下,创建和启动实例将是一个单独的命令,能够在容器启动时设置环境变量就像这个例子对我来说很重要.我对将我的所有代码都移到Azure中不感兴趣,我想继续使用gitlab作为源代码和容器注册表,但如果有一些原因我必须切换到使用Azure容器注册表,我需要一种方法来不知何故使用gitlab ci yaml在那里移动容器注册.
在我的所有搜索中,我找不到任何方法来做到这一点,但我找到的最接近的文档在这里:
我正在研究Azure Kubernates,我们可以在其中存储Docker映像。在这里尝试检查我的kubectl版本,然后得到
无法连接到服务器:拨打tcp [:: 1]:8080:connectex:由于目标计算机主动拒绝连接,因此无法建立连接。
为此,我遵循了带有AKS和VSTS的MSDN:uilding微服务–第2部分 和Windows上的MSDOCS:Kubernetes。
因此,您能否建议我“如何解决此问题?”
powershell azure azure-cli azure-container-service azure-kubernetes
docker Web应用程序选项上的“启动文件”选项是否适用于docker-compose文件?或外壳命令?我找不到任何文档...
基本上,我希望我的Web应用程序docker-compose.yml在将图像推送到它时运行a 而不是执行docker run [options]。

好吧,所以我搞砸了,我不小心碰到az ad sp reset-credentials了我们的AKS集群运行的服务主管.现在我们遇到的错误如下:
创建负载均衡器时出错(将重试):获取服务测试的LB/admin-api时出错:azure.BearerAuthorizer#WithAuthorization:无法刷新请求的令牌以访问https://management.azure.com/subscriptions/****/resourceGroups/MC_****/providers/Microsoft.Network/loadBalancers?api-version=2017-09-01:StatusCode = 0 - 原始错误:adal:刷新请求失败.状态代码='401'.响应正文:{"error":"invalid_client","error_description":"AADSTS70002:验证凭据时出错.AADSTS50012:提供了无效的客户端密码.\ r \nTrace ID:****\r \nCorrelation ID:****\r \n时间戳:2018-08-23 12:01:33Z","error_codes":[70002,50012],"timestamp":"2018-08-23 12:01:33Z","trace_id":"****", "CORRELATION_ID": "****"}
和
无法提取图像"****.azurecr.io/****:****":rpc错误:代码=未知desc =来自守护程序的错误响应:获取https://****.azurecr. io/v2/****/manifests/****:未经授权:需要验证
所以现在我想找到服务主体使用的原始客户端密钥,以便我可以将其重新添加为服务主体的密钥.除了重新创建整个集群之外,这是我能想到的唯一解决方案.
有任何想法吗?
azure azure-active-directory azure-container-service azure-kubernetes
我正在使用DC/OS协调器对ACS进行一些实验,虽然在单个区域内启动集群似乎很简单,但我不太确定在多个区域进行部署的最佳做法是什么.
Azure本身现在似乎不支持部署到多个区域.有了这个假设,我想我唯一的另一个选择是在我希望可用的所有区域中创建多个相同的集群,然后使用Azure Traffic Manager将传入流量路由到最近的可用集群.
虽然这个解决方案有效,但它也会导致一些我不能100%确定如何解决的问题.
有没有人曾经使用Azure容器服务(或者真正的亚马逊容器服务,因为我假设可以在那里找到相同的挑战)使用类似的设置,并有一些指示如何处理这个?
有没有人有任何建议如何在Azure容器服务(kubernetes)中运行时从Azure容器注册表中提取
我尝试过像下面这样的示例部署,但图像拉动失败了:
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
name: jenkins-master
spec:
replicas: 1
template:
metadata:
name: jenkins-master
labels:
name: jenkins-master
spec:
containers:
- name: jenkins-master
image: myregistry.azurecr.io/infrastructure/jenkins-master:1.0.0
imagePullPolicy: Always
readinessProbe:
tcpSocket:
port: 8080
initialDelaySeconds: 20
timeoutSeconds: 5
ports:
- name: jenkins-web
containerPort: 8080
- name: jenkins-agent
containerPort: 50000
Run Code Online (Sandbox Code Playgroud) azure docker kubernetes azure-container-service azure-container-registry
我Web App在Azure上部署了一个并使用公共注册表中的Docker容器(我自己的图像)来托管我的网站.但是用户可以上传图片,数据存储在服务器上的json文件中.当然,我想将这些文件写入容器外部的已安装卷.这样我就可以重新部署我的网站的更新版本而不会丢失数据.
这可能与Web Apps有关吗?或者我是否需要在Azure上使用Docker转移到Ubuntu VM?我喜欢的webapps是我不必担心管理VM而只关心我的容器.
我创建了一个服务调用门户,然后创建了入口:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: portal-ingress
spec:
backend:
serviceName: portal
servicePort: 8080
Run Code Online (Sandbox Code Playgroud)
但地址为空:
NAME HOSTS ADDRESS PORTS AGE
portal-ingress * 80 33m
Run Code Online (Sandbox Code Playgroud) azure ×9
docker ×2
azure-cli ×1
dcos ×1
gitlab ×1
gitlab-ci ×1
kubernetes ×1
node.js ×1
powershell ×1