后退重启失败的容器kubernetes

如何解决后退重启失败的容器kubernetes

在删除Kubernetes并将其重新安装到主节点和节点上之后,我再也无法安装NGINX Ingress Controller正常工作。

首先,要删除我已完成的Kubernetes:

# On Master
k delete namespace,service,job,ingress,serviceaccounts,pods,deployment,services --all
k delete node k8s-node-0
sudo kubeadm reset 
sudo systemctl stop kubelet
sudo apt-get purge kubeadm kubectl kubelet kubernetes-cni kube* -y
sudo apt-get autoremove -y
sudo rm -rf ~/.kube /etc/cni


# On Node
sudo kubeadm reset 
sudo systemctl stop kubelet
sudo apt-get purge kubeadm kubectl kubelet kubernetes-cni kube* -y
sudo apt-get autoremove -y
sudo rm -rf ~/.kube 

然后,要重新安装所有内容,我已完成:

# On Master
sudo apt install -y kubelet kubeadm kubectl
sudo kubeadm init
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml



# On Node
sudo apt install -y kubelet kubeadm kubectl
sudo kubeadm join 10.0.8.135:6443 --token 31xags.h9mr5dz6ncn632uv --discovery-token-ca-cert-hash sha256:c6b479e2130799a4e4d41c4a02dab54eedc431806171b92f4bbc1978d84bd91d

然后安装NGINX Ingress Controller:

git clone https://github.com/nginxinc/kubernetes-ingress.git
cd kubernetes-ingress/deployments 
k apply -f common/ns-and-sa.yaml 
k apply -f rbac/rbac.yaml
k apply -f common/default-server-secret.yaml
k apply -f common/nginx-config.yaml
k apply -f deployment/nginx-ingress.yaml
k apply -f daemon-set/nginx-ingress.yaml

然后,当我执行k get all -n nginx-ingress时,我得到了:

NAME                      READY   STATUS             RESTARTS   AGE
pod/nginx-ingress-2thp4   0/1     CrashLoopBackOff   7          14m

NAME                           DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
daemonset.apps/nginx-ingress   1         1         0       1            0           <none>          14m

和详细信息k describe pods nginx-ingress-2thp4 -n nginx-ingress

Name:         nginx-ingress-2thp4
Namespace:    nginx-ingress
Priority:     0
Node:         k8s-node-0/10.0.8.66
Start Time:   Mon,28 Sep 2020 15:22:01 +0700
Labels:       app=nginx-ingress
              controller-revision-hash=646bf8d696
              pod-template-generation=1
Annotations:  cni.projectcalico.org/podIP: 192.168.11.198/32
              cni.projectcalico.org/podIPs: 192.168.11.198/32
Status:       Running
IP:           192.168.11.198
IPs:
  IP:           192.168.11.198
Controlled By:  DaemonSet/nginx-ingress
Containers:
  nginx-ingress:
    Container ID:  docker://175d13f95564d98c06af5514b0519a035e5ee95872bb428fa94c9c2bfc6776a5
    Image:         nginx/nginx-ingress:edge
    Image ID:      docker-pullable://nginx/nginx-ingress@sha256:fdb07d0a639d0f2c761b4c5a93f6d5063b972b8ae33252bb7755bb5fb6da4fda
    Ports:         80/TCP,443/TCP,8081/TCP
    Host Ports:    80/TCP,0/TCP
    Args:
      -nginx-configmaps=$(POD_NAMESPACE)/nginx-config
      -default-server-tls-secret=$(POD_NAMESPACE)/default-server-secret
    State:          Waiting
      Reason:       CrashLoopBackOff
    Last State:     Terminated
      Reason:       Error
      Exit Code:    255
      Started:      Mon,28 Sep 2020 15:33:09 +0700
      Finished:     Mon,28 Sep 2020 15:33:09 +0700
    Ready:          False
    Restart Count:  7
    Readiness:      http-get http://:readiness-port/nginx-ready delay=0s timeout=1s period=1s #success=1 #failure=3
    Environment:
      POD_NAMESPACE:  nginx-ingress (v1:metadata.namespace)
      POD_NAME:       nginx-ingress-2thp4 (v1:metadata.name)
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from nginx-ingress-token-j9hjm (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             False 
  ContainersReady   False 
  PodScheduled      True 
Volumes:
  nginx-ingress-token-j9hjm:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  nginx-ingress-token-j9hjm
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/disk-pressure:NoSchedule op=Exists
                 node.kubernetes.io/memory-pressure:NoSchedule op=Exists
                 node.kubernetes.io/not-ready:NoExecute op=Exists
                 node.kubernetes.io/pid-pressure:NoSchedule op=Exists
                 node.kubernetes.io/unreachable:NoExecute op=Exists
                 node.kubernetes.io/unschedulable:NoSchedule op=Exists
Events:
  Type     Reason     Age                 From               Message
  ----     ------     ----                ----               -------
  Normal   Scheduled  15m                 default-scheduler  Successfully assigned nginx-ingress/nginx-ingress-2thp4 to k8s-node-0
  Normal   Pulled     15m                 kubelet            Successfully pulled image "nginx/nginx-ingress:edge" in 9.106863831s
  Normal   Pulled     15m                 kubelet            Successfully pulled image "nginx/nginx-ingress:edge" in 3.626387366s
  Normal   Pulled     14m                 kubelet            Successfully pulled image "nginx/nginx-ingress:edge" in 3.839665529s
  Normal   Created    14m (x4 over 15m)   kubelet            Created container nginx-ingress
  Normal   Started    14m (x4 over 15m)   kubelet            Started container nginx-ingress
  Normal   Pulled     14m                 kubelet            Successfully pulled image "nginx/nginx-ingress:edge" in 3.846965585s
  Normal   Pulling    13m (x5 over 15m)   kubelet            Pulling image "nginx/nginx-ingress:edge"
  Warning  BackOff    14s (x70 over 15m)  kubelet            Back-off restarting failed container

并记录k logs nginx-ingress -n nginx-ingress

I0928 08:38:16.776841       1 main.go:245] Starting NGINX Ingress controller Version= GitCommit=
W0928 08:38:16.797787       1 main.go:284] The '-use-ingress-class-only' flag will be deprecated and has no effect on versions of kubernetes >= 1.18.0. Processing ONLY resources that have the 'ingressClassName' field in Ingress equal to the class.
F0928 08:38:16.802335       1 main.go:288] Error when getting IngressClass nginx: ingressclasses.networking.k8s.io "nginx" not found

这是kubectl版本:

Client Version: version.Info{Major:"1",Minor:"19",GitVersion:"v1.19.2",GitCommit:"f5743093fd1c663cb0cbc89748f730662345d44d",GitTreeState:"clean",BuildDate:"2020-09-16T13:41:02Z",GoVersion:"go1.15",Compiler:"gc",Platform:"linux/amd64"}
Server Version: version.Info{Major:"1",BuildDate:"2020-09-16T13:32:58Z",Platform:"linux/amd64"}

我已经进行了很多搜索,但仍然找不到解决此问题的方法。还已经尝试过重新安装很多次,但是它永远无法正常工作。

解决方法

我认为可能会发生这种情况,因为您想在有限的名称空间中使用nginx入口控制器。请尝试将此补丁应用于您的ClusterRole定义nginx-ingress-clusterrole

@@ -157,7 +160,7 @@ rules:
       - list
       - watch
   - apiGroups:
-      - "extensions"
+      - "networking.k8s.io"
     resources:
       - ingresses
     verbs:

看看:cluster-role-nginx-controller

,

您还需要添加

kubectl apply -f common/ingress-class.yaml

有关IngressClass的更多信息以及在1.18以上版本中所做的更改,可以在下面找到 https://kubernetes.io/docs/concepts/services-networking/ingress/

,

对于我的设置,没有创建IngressClass,就像Zzorica回答的那样。具体来说,需要应用this config

此外,不要忘记添加

spec:
  ingressClassName: nginx
以及您的Ingress对象。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-