Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在尝试创建Kubernetes部署,但显示0个可用吊舱_Kubernetes_Kubectl - Fatal编程技术网

正在尝试创建Kubernetes部署,但显示0个可用吊舱

正在尝试创建Kubernetes部署,但显示0个可用吊舱,kubernetes,kubectl,Kubernetes,Kubectl,我是k8s新手,所以我的一些术语可能不适用。但基本上,我正在尝试部署一个简单的web api:在n个POD前面部署一个负载平衡器(现在,n=1) 但是,当我尝试访问负载平衡器的IP地址时,它不会显示我的web应用程序。当我运行kubectl get deployments时,我得到以下结果: NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE tl-api 1 1 1 0

我是k8s新手,所以我的一些术语可能不适用。但基本上,我正在尝试部署一个简单的web api:在n个POD前面部署一个负载平衡器(现在,n=1)

但是,当我尝试访问负载平衡器的IP地址时,它不会显示我的web应用程序。当我运行kubectl get deployments时,我得到以下结果:

NAME      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
tl-api    1         1         1            0           4m
Events:
  Type     Reason                 Age                From                   Message
  ----     ------                 ----               ----                   -------
  Normal   Scheduled              11m                default-scheduler      Successfully assigned tl-api-3466491809-vd5kg to dc9ebacs9000
  Normal   SuccessfulMountVolume  11m                kubelet, dc9ebacs9000  MountVolume.SetUp succeeded for volume "default-token-v3wz9"
  Normal   Pulling                4m (x6 over 10m)   kubelet, dc9ebacs9000  pulling image "tlk8s.azurecr.io/devicecloudwebapi:v1"
  Warning  FailedSync             1s (x50 over 10m)  kubelet, dc9ebacs9000  Error syncing pod
  Normal   BackOff                1s (x44 over 10m)  kubelet, dc9ebacs9000  Back-off pulling image "tlk8s.azurecr.io/devicecloudwebapi:v1"
这是我的YAML文件。如果有什么不对劲的话,请告诉我——我对这个很陌生

---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: tl-api
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: tl-api
    spec:
      containers:
      - name: tl-api
        image: tlk8s.azurecr.io/devicecloudwebapi:v1
        ports:
        - containerPort: 80
      imagePullSecrets:
      - name: acr-auth
      nodeSelector:
        beta.kubernetes.io/os: windows
---
apiVersion: v1
kind: Service
metadata:
  name: tl-api
spec:
  type: LoadBalancer
  ports:
  - port: 80
  selector:
    app: tl-api
编辑2:当我尝试使用ACS(支持Windows)时,我得到以下结果:

NAME      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
tl-api    1         1         1            0           4m
Events:
  Type     Reason                 Age                From                   Message
  ----     ------                 ----               ----                   -------
  Normal   Scheduled              11m                default-scheduler      Successfully assigned tl-api-3466491809-vd5kg to dc9ebacs9000
  Normal   SuccessfulMountVolume  11m                kubelet, dc9ebacs9000  MountVolume.SetUp succeeded for volume "default-token-v3wz9"
  Normal   Pulling                4m (x6 over 10m)   kubelet, dc9ebacs9000  pulling image "tlk8s.azurecr.io/devicecloudwebapi:v1"
  Warning  FailedSync             1s (x50 over 10m)  kubelet, dc9ebacs9000  Error syncing pod
  Normal   BackOff                1s (x44 over 10m)  kubelet, dc9ebacs9000  Back-off pulling image "tlk8s.azurecr.io/devicecloudwebapi:v1"
然后我尝试检查失败的pod:

PS C:\users\<me>\source\repos\DeviceCloud\DeviceCloud\1- Presentation\DeviceCloud.Web.API> kubectl logs tl-api-3466491809-vd5kg
Error from server (BadRequest): container "tl-api" in pod "tl-api-3466491809-vd5kg" is waiting to start: trying and failing to pull image

您的问题是容器映像
tlk8s.azurecr.io/devicecloudwebapi:v1
位于私有容器注册表中。请参见以下命令底部的事件:

$ kubectl describe po -l=app=tl-api
Kubernetes官方文件描述了如何解决该问题,请参见:

  • 创建机密
    kubectl创建机密docker注册表
  • 在部署中,在
    spec.imagePullSecrets
    键下使用它

谢谢。现在我得到的是:“未能拉取映像”tlk8s.azurecr.io/devicecloudwebapi:v1:rpc错误:code=Unknown desc=Unknown blob。“它不识别我的映像名吗?”?我很确定这是对的,明白了。由于我无法再现这一点,我只能猜测:如果你使用的是ACS,也许你遇到的问题与这里描述的相同:?啊,我的Google fu让我失望了。谢谢你的发现。看起来我目前无法在AKS上运行Windows容器!谢谢你的帮助。(出于好奇,它说:“要运行Windows Server容器,您需要运行基于Windows Server的节点。基于Windows Server的节点目前在AKS中不可用。如果您需要在Azure中的Kubernetes上运行Windows Server容器,请参阅acs引擎的文档。”)我可以再次为您设置错误吗?我现在尝试使用ACS进行部署(它支持Windows节点),但现在同步pod时出现错误。对此有什么想法吗?也许最好另问一个问题,保持干净?