6-6 kubectl apply -f ingress-nginx-mandatory.yaml 后续2

来源:6-6 部署ingress-nginx(下)

yl_testimooc3804939

2021-12-29

接上一个问题
6-6 kubectl apply -f ingress-nginx-mandatory.yaml 后续
"https://coding.imooc.com/learn/questiondetail/NAr19XnpJe0PLBEz.html"

老师,我运行您给的文件,文件执行成功,不报错了,但是镜像http-backend状态还是有问题。
问题1:docker pull了国内镜像源,为啥再看node-3日志中,已经下载了http-backend的镜像,还要抛出k8s相关网站的连接拒绝信息?以及同步镜像失败的信息?缺配置吗?这个打tag没用吗?我怀疑node-1的http-backend状态问题跟这个有关系。
问题2:ingress-controller状态正常,而http-backend不正常,但是后续的tomcat还是正常运行的,不太明白这个http-backend是做什么用的,http-backend和ingress-controller啥关系呢?

(除了操作系统是centos 7.9,hostname不同以外,其他软件版本都是跟您的保持一致的)

一、下述是我的操作步骤

[root@node-3 ~]# docker pull quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.19.0
[root@node-3 ~]# docker pull registry.cn-hangzhou.aliyuncs.com/liuyi01/defaultbackend-amd64:1.5
[root@node-3 ~]# docker tag registry.cn-hangzhou.aliyuncs.com/liuyi01/defaultbackend-amd64:1.5 k8s.gcr.io/defaultbackend-amd64:1.5

[root@node-2 harbor]# docker-compose stop

[root@node-1 ingress-nginx]# kubectl label node node-2 app=ingress
node/node-2 labeled

[root@node-1 ingress-nginx]# kubectl apply -f mandatory.yaml 
namespace/ingress-nginx created
deployment.apps/default-http-backend created
service/default-http-backend created
configmap/nginx-configuration created
configmap/tcp-services created
configmap/udp-services created
serviceaccount/nginx-ingress-serviceaccount created
clusterrole.rbac.authorization.k8s.io/nginx-ingress-clusterrole created
role.rbac.authorization.k8s.io/nginx-ingress-role created
rolebinding.rbac.authorization.k8s.io/nginx-ingress-role-nisa-binding created
clusterrolebinding.rbac.authorization.k8s.io/nginx-ingress-clusterrole-nisa-binding created
deployment.apps/nginx-ingress-controller created

[root@node-1 ingress-nginx]# kubectl get all -n ingress-nginx
NAME                                            READY   STATUS             RESTARTS   AGE
**pod/default-http-backend-6b849d7877-45gw2       0/1     Evicted            0          7h12m
pod/default-http-backend-6b849d7877-t4vm6       0/1     ImagePullBackOff   0          6h37m
pod/nginx-ingress-controller-7c55698fb9-kmpnc   1/1     Running            0          6h37m
pod/nginx-ingress-controller-7c55698fb9-xcnq4   0/1     Evicted            0          7h12m**

NAME                           TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
service/default-http-backend   ClusterIP   10.233.230.90   <none>        80/TCP    7h12m

NAME                                       READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/default-http-backend       0/1     1            0           7h12m
deployment.apps/nginx-ingress-controller   1/1     1            1           7h12m

NAME                                                  DESIRED   CURRENT   READY   AGE
replicaset.apps/default-http-backend-6b849d7877       1         1         0       7h12m
replicaset.apps/nginx-ingress-controller-7c55698fb9   1         1         1       7h12m

[root@node-1 ingress-nginx]# kubectl get nodes
NAME     STATUS   ROLES    AGE     VERSION
node-2   Ready    <none>   5d20h   v1.20.2
node-3   Ready    <none>   6d15h   v1.20.2

[root@node-1 ingress-nginx]# kubectl apply -f ingress-demo.yaml
deployment.apps/tomcat-demo created
service/tomcat-demo created
Warning: extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
ingress.extensions/tomcat-demo created


[root@node-2 harbor]# netstat -lntup|grep 80
tcp        0      0 0.0.0.0:18080           0.0.0.0:*               LISTEN      27955/nginx: master 
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      27955/nginx: master 
tcp6       0      0 :::18080                :::*                    LISTEN      27955/nginx: master 
**tcp6       0      0 :::80                   :::*                    LISTEN      27955/nginx: master** 
[root@node-2 harbor]# netstat -lntup|grep 443
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      27955/nginx: master 
**tcp6       0      0 :::443                  :::*                    LISTEN      27955/nginx: master** 

浏览器访问:http://tomcat.mooc.com/		显示tomcat的欢迎页面

二、错误异常信息

[root@node-3 harbor]# journalctl -f

Dec 29 21:45:28 node-3 containerd[1299]: time="2021-12-29T21:45:28.466320076+08:00" 
level=info 
msg="Exec process \"51632cd761345779b29d8c5dfaab3043a6fcd8fd0520234d6fd0a6f6a5170d45\" exits with exit code 0 and error <nil>"


Dec 29 21:45:09 node-3 kubelet[17256]: E1229 21:45:09.236904   17256 pod_workers.go:191] 
**Error syncing pod ab21541f-541c-42d9-8053-084439ddd5ec 
("default-http-backend-6b849d7877-t4vm6_ingress-nginx
(ab21541f-541c-42d9-8053-084439ddd5ec)"), 
skipping: failed to "StartContainer" for "default-http-backend" with 
ImagePullBackOff: "Back-off pulling image \"k8s.gcr.io/defaultbackend-amd64:1.5\""**


Dec 29 21:54:48 node-3 kubelet[17256]: E1229 21:54:48.272329   17256 pod_workers.go:191] 
**Error syncing pod ab21541f-541c-42d9-8053-084439ddd5ec 
("default-http-backend-6b849d7877-t4vm6_ingress-nginx(ab21541f-541c-42d9-8053-084439ddd5ec)"), 
skipping: failed to "StartContainer" for "default-http-backend" with ErrImagePull: 
"rpc error: code = Unknown desc = 
failed to pull and unpack image \"k8s.gcr.io/defaultbackend-amd64:1.5\": 
failed to resolve reference \"k8s.gcr.io/defaultbackend-amd64:1.5\": 
failed to do request: Head \"https://k8s.gcr.io/v2/defaultbackend-amd64/manifests/1.5\": 
dial tcp 64.233.189.82:443: connect: connection refused"**

#我在这台机器配置了您在一键安装中教的网络代理也没用。

[root@node-3 ~]# systemctl status kubelet
¡ñ kubelet.service - Kubernetes Kubelet
   Loaded: loaded (/etc/systemd/system/kubelet.service; enabled; vendor preset: disabled)
   **Active: active (running) since Wed 2021-12-29 22:43:10 CST; 9min ago**
     Docs: https://github.com/kubernetes/kubernetes
 Main PID: 49175 (kubelet)
    Tasks: 0
   Memory: 52.5M
   CGroup: /system.slice/kubelet.service
           ? 49175 /usr/local/bin/kubelet --config=/etc/kubernetes/kubelet-config.yaml --container-runtime=remote --container-run...

Dec 29 22:51:45 node-3 kubelet[49175]: E1229 22:51:45.687065   49175 pod_workers.go:191] 
**Error syncing pod ab21541f-541c-42d9-805...**
。。。
Dec 29 22:52:00 node-3 kubelet[49175]: E1229 22:52:00.678048   49175 pod_workers.go:191] 
**Error syncing pod ab21541f-541c-42d9-805...**


[root@node-3 ~]# ps -ef|grep 49175
root      49175      1  5 22:43 ?        00:00:31 /usr/local/bin/kubelet --config=/etc/kubernetes/kubelet-config.yaml --container-runtime=remote --container-runtime-endpoint=unix:///var/run/containerd/containerd.sock --image-pull-progress-deadline=2m --kubeconfig=/etc/kubernetes/kubeconfig --network-plugin=cni --node-ip=172.16.1.23 --register-node=true --v=2


写回答

3回答

qq_慕丝0528892

2022-03-20

我本来default-http-backend也是有问题的,但是我执行了:

1: docker pull registry.cn-hangzhou.aliyuncs.com/liuyi01/defaultbackend-amd64:1.5

2: docker tag registry.cn-hangzhou.aliyuncs.com/liuyi01/defaultbackend-amd64:1.5 k8s.gcr.io/defaultbackend-amd64:1.5

这两条命令之后,就恢复正常了

0
0

刘果国

2021-12-30

httpbackend是一个附属品,对主流程没有影响,当找不到页面时候会甩给它。

httpbackend的错误就是镜像下载失败了,可以在它运行的节点上手动给下载好,tag一定要完全一致,客户端也要一致,docker的就用docker,containerd就是containerd,它们镜像不通。然后kill掉触发它重启。

不解决也不影响后面的学习

0
0

yl_testimooc3804939

提问者

2021-12-30

问题三:这里的这个情况对后续章节会有影响吗?

0
1
qq_慕丝0528892
没有影响,只是报错令人难受
2022-03-20
共1条回复

Kubernetes生产落地全程实践

一个互联网公司落地Kubernetes全过程点点滴滴

2293 学习 · 2211 问题

查看课程