![](/img/trans.png)
[英]diskpressure on node when deploying using kubernetes pod in pending state
[英]Pod is in Pending state on single node Kubernetes cluster
我正在使用YAML
文件在Kubernetes
上部署容器,并在托管机器上使用一些复制因子。
apiVersion: apps/v1
kind: Deployment
metadata:
name: mojo-deployment
labels:
app: mojo
spec:
selector:
matchLabels:
app: mojo
replicas: 3
template:
metadata:
labels:
app: mojo
spec:
containers:
- name: mojo
image: mojo:1.0.1
ports:
- containerPort: 9000
---
#Services Info
apiVersion: v1
kind: Service
metadata:
name: mojo-services
spec:
selector:
app: mojo
ports:
- protocol: TCP
port: 80
targetPort: 9376
---
#Ingress Configuration
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: mojo-ingress
annotations:
kubernetes.io/ingress.class: mojo
spec:
backend:
serviceName: mojo-services
servicePort: 80
脚步:
Docker
镜像。docker image ls
显示一个图像 ID。docker build
命令在容器上部署镜像。 我需要这样做吗? 或者kubectl
服务会处理它。kubectl apply -f Prod.yaml
。 表明deployment.apps/mojo-deployment 创建
已创建服务/mojo-services
ingress.networking.k8s.io/mojo-ingress 创建
问题?
在部署YAML
文件之前是否需要构建容器? 我试过了,但kubernetes
仍然没有运行。
为什么所有 Pod 都显示Pending
状态。
部署也显示pending
状态。
尽管我尝试使用 :80 访问Ingress
并且无法访问它。
吊舱描述
Name: mojo-deployment-6665bdc557-s57m7
Namespace: default
Priority: 0
Node: <none>
Labels: app=mojo
pod-template-hash=6665bdc557
Annotations: <none>
Status: Pending
IP:
IPs: <none>
Controlled By: ReplicaSet/mojo-deployment-6665bdc557
Containers:
mojo:
Image: mojo:1.0
Port: 9000/TCP
Host Port: 0/TCP
Environment: <none>
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-tjx6p
(ro)
Conditions:
Type Status
PodScheduled False
Volumes:
default-token-tjx6p:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-tjx6p
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events:
Type Reason Age From
消息 ---- ------ ---- ---- ------- Warning FailedScheduling 70s (x45 over 67m) default-scheduler 0/1 nodes are available: 1 node(s) was不可安排。
从主节点删除污点后。 1. kubectl get node
返回
kubectl get pod
返回kubectl describe node
: https : kubectl describe node
如果您只有一个节点 (master) ,那么通常会向其中添加一个污点,这将使主节点无法调度。 使用下面的方法从主节点(以及所有其他节点,如果有多个节点)中删除污点。
kubectl taint nodes --all node-role.kubernetes.io/master-
编辑:根据节点描述输出,CNI 未准备好。 请确保所有与 CNI 相关的 Pod 都在运行且健康
containers:
- name: mojo
image: mojo:1.0.1
ports:
- containerPort: 9000
请回答:你的 mojo:1.0.1 docker 镜像如何出现在 kubernetes 节点上?
所有 pod 都等待图像可用。
部署等待所有 pod 将处于Running
状态。
部署就绪后,K8s 服务使入口可用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.