在 AKS 上使用 OpenStack,在停止并启动所有虚拟机后,OpenStack 似乎处于一种奇怪的状态

在 AKS 上使用 OpenStack,在停止并启动所有虚拟机后,OpenStack 似乎处于一种奇怪的状态

在 AKS 上创建 OpenStack CLI,如下所示:

$ kubectl create configmap openstack-rc-os-cli-0 --from-file=$OPENSTACK_RC

$OPENSTACK_RC 是一个包含下列内容的文件:

export OS_USERNAME="$OPENSTACK_USER"
export OS_PROJECT_NAME="$OPENSTACK_TENANT"
export OS_AUTH_URL="http://$DEVSTACK_PRIVATE_IP/identity"
export OS_PASSWORD="$OPENSTACK_PASS"
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_DOMAIN_ID=default

然后:

$ kubectl create -f - <<EOF
apiVersion: v1
kind: Pod
metadata:
  name: os-cli-0
spec:
  containers:
  - name: openstack-cli
    image: alpine
    volumeMounts:
    - name: openstack-rc-os-cli-0
      mountPath: /openstack
    command: ["/bin/sh"]
    args:
      - -c
      - apk update && \
        apk add python3 && \
        apk add py3-pip && \
        apk add python3-dev && \
        apk add gcc && \
        apk add musl-dev && \
        apk add libffi-dev && \
        apk add openssl-dev && \
        pip3 install python-openstackclient && \
        sh -c 'echo ". /openstack/openstack_rc" >> /root/.profile; while true; do sleep 60; done;'
  restartPolicy: Never
  volumes:
    - name: openstack-rc-os-cli-0
      configMap:
        name: openstack-rc-os-cli-0
        defaultMode: 0755
EOF

然后我部署了一些服务,一切都很顺利。

然后,我认为 Azure 花费太多钱来维持 AKS VM 的持续运行,因此停止了所有 VM。当我重新启动它们时,我的许多 pod 都无法正常启动。特别是,os-cli-0 pod 只显示“错误”:

$ kubectl get pods -o wide
NAME       READY   STATUS   RESTARTS   AGE   IP       NODE                       NOMINATED NODE   READINESS GATES
os-cli-0   0/1     Error    0          9d    <none>   aks-nodepool1-39561274-1   <none>           <none>

我查看了这个 Pod 的日志,除了我第一次构建它时的内容外,里面什么也没有。这让我相信虚拟机恢复后,这个 Pod 甚至从未尝试启动过。

Azure 报告称 AKS 运行正常,据我所知确实如此。问题似乎是 OpenStack 尚未正确重新启动。

我可能只是忽略了一些愚蠢的东西,我感谢任何帮助。

相关内容