这个事情困扰了我一整天,创建nginx时出现pod 0/1 pending,一开始是以为flannel网卡出现了问题,一直去选择用calico网卡,但是calico这个玩意配置的路上全是坑,所以一直配不出calico,疯狂重启,疯狂报错,发现flannel网卡没有问题。

于是出搜索是怎么回事,删除了nginx重新创建了nginx

(这个只是我的解决步骤,不想创建nginx或者创建过的可以不创,跳过下面的创建nginx步骤1-7)

  1. 创建一个名为 nginx-deployment.yaml 的 YAML 文件,内容如下:
  2. apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:latest
            ports:
            - containerPort: 80
  3. 使用以下命令将 Deployment 配置应用到集群中:
  4. kubectl apply -f nginx-deployment.yaml

  5. 创建一个名为 nginx-service.yaml 的 YAML 文件,

  6. apiVersion: v1
    kind: Service
    metadata:
      name: nginx-service
    spec:
      selector:
        app: nginx
      ports:
        - protocol: TCP
          port: 80
          targetPort: 80
      type: NodePort

  7. kubectl apply -f nginx-service.yaml
  8. 不创建nginx的从这里开始看
  9. 创建好了nginx    用 kubectl get pod,svc看一眼 wc

  10. 三个都没启动成功 fafafa!
                            

  11. kubectl describe pod nginx-deployment-59c9f8dff-cq66g
    随便查看了一个pod的错误原因显示节点上有一个污点 我的pod没有容忍这个污点,于是我开始查找相关的内容:
                            

  12. 我找到了这个文章

    首先这个问题是由什么造成的:
    当创建单机版的 k8s 时,这个时候 master 节点是默认不允许调度 pod 的,需要执行

    kubectl taint nodes --all node-role.kubernetes.io/master-
    命令将 master 标记为可调度.

                            
    原文链接:https://blog.csdn.net/baobaoxiannv/article/details/86987171
                            
                            

  13. 好了,知道了,那就执行你这个文件,反正我有快照,不行就打回去呗。
                            

  14. 然后下面这个代码kubectl describe nodes k8s-master  | grep Taints                               是在这里原文链接:https://blog.csdn.net/qq_70531838/article/details/134878865s
                            

  15. kubectl get pods -A 看一眼
                            
    1/1 了!
                            

  16. 去看一眼网页成了!

 总结:主要原因是当创建单机版的 k8s 时,这个时候 master 节点是默认不允许调度 pod 的。这个坑藏的有点深。

还有后面如果有人在calico部署的时候卡住可以试一下用flannel插件部署,calico我查找了一整天的文档,改文件很麻烦,网络连接不通问题,还有版本不一致 问题 坑也是巨多,我选择放弃calico的部署了。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐