我的豆荚遇到了一个奇怪的问题。我在我的 env 中启动了大约 20 个 pod,每次它们中的一些随机 3-4 个 pod 以 Init:0/1 状态挂起。在检查 pod 状态时,Init 容器显示运行状态,任务完成后应终止,应用程序容器显示 Waiting/Pod Initializing 阶段。在所有 20 个 pod 中使用相同的 init 容器映像和规范,但这个问题每次都会发生在一些随机 pod 中。并且在终止这些卡住的 Pod 时,它会卡在终止状态。如果我在启动此 pod 的节点上 ssh 并运行 docker ps,它会向我显示处于运行状态的 init 容器,但在运行 docker exec 时它会抛出容器不存在的错误。这个 init 容器正在从 Consul Server 中提取配置并检查音量(从 docker inspect 中获得),我发现它已正确提取所有键值对并将其保存在定义的文件名中。我已经检查了所有节点上的资源,并且所有节点上的资源都绰绰有余。
下面是 pod 上的详细示例。
Kubectl 版本:
kubectl version
Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.0", GitCommit:"925c127ec6b946659ad0fd596fa959be43f0cc05", GitTreeState:"clean", BuildDate:"2017-12-15T21:07:38Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.2", GitCommit:"5fa2db2bd46ac79e5e00a4e6ed24191080aa463b", GitTreeState:"clean", BuildDate:"2018-01-18T09:42:01Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"linux/amd64"}
Run Code Online (Sandbox Code Playgroud)
豆荚:
kubectl get pods …Run Code Online (Sandbox Code Playgroud) 我是Kubernetes和Nginx Ingress工具的新手,现在我正尝试在AWS的Nginx Ingress中使用VHost托管MySql服务。我创建了一个类似于以下文件:
apiVersion: v1
kind: Service
metadata:
name: mysql
labels:
app: mysql
spec:
type: NodePort
ports:
- port: 3306
protocol: TCP
selector:
app: mysql
---
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: mysql
labels:
app: mysql
spec:
replicas: 1
selector:
matchLabels:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
containers:
- name: mysql
image: mysql
imagePullPolicy: IfNotPresent
env:
- name: MYSQL_ROOT_PASSWORD
value: password
ports:
- name: http
containerPort: 3306
protocol: TCP
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: mysql
labels: …Run Code Online (Sandbox Code Playgroud)