部署Windows集装箱(与泊坞窗创建)到Azure的集装箱服务
我试图完成对如何正确使用Windows集装箱在Azure域/环境中工作,我必须containerize点网络核心的Web API应用程序的体系结构研究部署容器到Azure的集装箱服务部署Windows集装箱(与泊坞窗创建)到Azure的集装箱服务
这里是我做
我做了Azure的门户网站中创建一个蓝色的集装箱服务帐户/域/虚拟机的事情
另外,我确实为Windows Server 2016创建了另一个已安装Docker的容器的虚拟机
在Windows服务器2016上,我创建了一个简单的.NET Core Web API应用程序,并为该应用程序创建了一个映像使用泊坞窗
我没有在Web API应用程序的形象推到码头工人枢纽和使用SSH隧道接口试图将图像下载到Azure的集装箱服务,因此它可以从该服务
但是,我会收到一条消息t Windows容器无法在Linux上运行,因为默认情况下,Azure容器服务是Linux系统
有没有办法将Windows Docker容器部署到Azure容器服务中 a。我应该在Windows中创建Azure容器服务吗? b。我应该使用另一个Orchestrator(不是Docker)将Windows容器部署到Azure容器服务中吗? c。我应该走另一条路吗?
非常感谢您的支持!
Windows Containers无法在Linux上作为Azure容器运行 服务默认为Linux系统。
正如我们所知,关于Linux和windows的容器是不同的,所以我们不能在Linux系统上运行windows容器。
作为一种变通方法,我们可以创建Azure的容器服务(选择kubernetes)与Windows代理,所以我们可以部署Windows容器kubernetes Windows代理。
我们可以通过Azure的门户部署Azure的集装箱业务,选择Orchestrator可以kubernetes,在代理配置,我们应该选择操作系统为Windows。这样,kubernetes的主人就是Linux,代理人是windows。
我们可以用kubectl
和泊坞窗文件创建窗口容器。 例如,我们可以在Windows代理上部署IIS容器。 Kubernetes是一个用于管理容器的工具,因此我们可以使用k8s将IIS部署到Windows节点。
1.创建iis.json
文件,像这样:
{
"apiVersion": "v1",
"kind": "Pod",
"metadata": {
"name": "iis",
"labels": {
"name": "iis"
}
},
"spec": {
"containers": [
{
"name": "iis",
"image": "nanoserver/iis",
"ports": [
{
"containerPort": 80
}
]
}
],
"nodeSelector": {
"beta.kubernetes.io/os": "windows"
}
}
}
2。使用kubctl适用命令创建吊舱,这样的:有关如何使用K8S来部署Windows IIS容器
kubectl apply -f iis.json
的更多信息,请参阅本link。
如果你想使用你的容器图片,你可以上传你的图片到Azure container registry,然后从注册表中拉出图片。
如何为Azure容器注册表设置秘密并拉取图片,请参考此answer。
非常感谢您的帮助!我确实在Azure bash shell中创建了一个Kubernetes集群,并且能够运行kubectl命令。据我了解这个环境,我应该能够运行容器。但是,无论何时我试图从docker集线器中提取映像“无法连接到unix上的Docker守护进程:///var/run/docker.sock。docker守护进程是否正在运行?”。而且我找不到任何有关如何启动docker守护进程的信息,所以我可以运行这些容器。我在正确的道路上,还是应该在Docker Windows Container的Kubernetes上使用docker命令? – Mikhail
@Mikhail Kubernetes是一个用于管理容器的工具,默认情况下,docker正在运行,但我们应该连接到K8s代理(节点),在该节点中,我们可以运行docker命令,但我们应该使用'kubectl'命令来创建和管理容器,不应该使用docker命令。正如我们所知,k8s主要运行api和其他服务,而不是运行容器服务,容器将运行在k8s代理上。 –
@Mikhail如果你想连接到k8s代理并运行docker命令,我们可以在同一个Vnet中创建另一个VM(跳箱),并将这个虚拟机的公有IP地址ssh,然后将RDP转换为K8S代理。在那个会话中,我们可以直接运行docker命令。 –
Azure容器服务?你选择哪一个管弦乐队? Kubernetes? –
我们正在选择码头群,谢谢你的帮助! – Mikhail