我正在使用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服务
ingress.networking.k8s.io/mojo-ingress已创建
问题?
在部署YAML
文件之前是否需要构建容器?我尝试过,但kubernetes
仍未运行。
为什么所有广告连播都显示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
消息 ---- ------ ---- ---- ------- 警告失败排定70秒(x45超过67m)默认排程器0/1 节点可用:1个节点不可调度。
从主节点上移除异味后。
1. kubectl get node
返回
kubectl get pod
返回kubectl describe node
:https://gist.github.com/amixpal/333bffd6ab91def749267f30d4ffb079 答案 0 :(得分:1)
如果只有一个节点(主节点),则通常会添加一个Taint,这将使主节点无法计划。使用以下方法从主节点(以及所有其他节点,如果有多个节点)中删除污点。
kubectl taint nodes --all node-role.kubernetes.io/master-
编辑:基于节点描述输出,CNI未准备好。 请确保所有与CNI相关的Pod都在运行且健康
答案 1 :(得分:0)
containers:
- name: mojo
image: mojo:1.0.1
ports:
- containerPort: 9000
请回答:您的mojo:1.0.1 docker映像如何出现在kubernetes节点上?
所有吊舱都等待图像可用。
等待所有Pod的部署将处于Running
状态。
K8s服务可在部署准备就绪后使入口可用。