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
这两条命令之后,就恢复正常了
00 -
刘果国
2021-12-30
httpbackend是一个附属品,对主流程没有影响,当找不到页面时候会甩给它。
httpbackend的错误就是镜像下载失败了,可以在它运行的节点上手动给下载好,tag一定要完全一致,客户端也要一致,docker的就用docker,containerd就是containerd,它们镜像不通。然后kill掉触发它重启。
不解决也不影响后面的学习
00 -
yl_testimooc3804939
提问者
2021-12-30
问题三:这里的这个情况对后续章节会有影响吗?
012022-03-20
相似问题