【k8s】尝试用minikube创建集群
1,启动minikubeminikube start2,创建集群[1]minikube start --vm-driver=docker --image-mirror-country='cn' --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers' --logtostderr命令参考的文章[1],不知道为什么
1,启动Minikube[1]
minikube start --vm-driver=docker --image-mirror-country='cn' --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers' --logtostderr
命令参考的文章[1],不知道为什么,我这里一次命令就成功了。如果有问题,可以参考下原文章或者其他文章。
2,创建Nginx集群[2]
创建deployment
kubectl create deployment nginx --image=nginx:1.14-alpine
查看deployment
kubectl get deploy
创建service服务
kubectl expose deploy nginx --port=80 --target-port=80 --type=NodePort
查看service服务
kubectl get svc
查看pod
kubectl get pod -o wide
查看大盘监控或者nginx进程
minikube dashboard
ps -ef | grep nginx
此时已经可以看到nginx暴露出的service、node和进程等,正在运行中。
可以通过访问kubectl get svc命令暴露出的ip+端口进行访问,如直接通过网页访问,或者curl命令测试
curl 10.105.135.172:80
但是我这里无论如何都访问不了,猜测是防火墙的问题,但是参考了一些文章并进行设置,无法访问的问题还是没有解决[3-5]。
之前用docker启动nginx容器是可以正常运行的,当时防火墙已经关掉了,现在也是关掉的状态,如图。
查看防火墙状态
firewall-cmd --state
于是怀疑是不是端口被占用了。
lsof -i
用以显示符合条件的进程情况[6]
lsof -i:80
netstat -tunlp
用于显示tcp,ucp的端口和进程等相关情况[6]
netstat -tunlp |grep 80
可以看到80端口没有被使用。
后来搜到了一篇文章,全网最详细的 K8s Service 不能访问排查流程[7]。按照文章中的排查流程,一步步的排查,在问题7:Pod 正常工作吗中,可以看到我的Pod
curl 10.105.135.172
查看pod日志
kubectl logs nginx-7cbb8cd5d8-x64mv
查看pod最近一小时内日志
kubectl logs --since=1h nginx-7cbb8cd5d8-x64mv
可以看到都没有输出。没有打印日志的原因是没有访问到,因此没有工作日志,同样没有报错日志。
从文章 K8s - Kubernetes使用详解6(Service的创建和使用)[8]中注意到,可能是dns service出了问题,从而无法解析server的服务。
验证dns server是否正常工作:
获取nginx这个service的信息,可以看到nginx这个service是存在的
kubectl describe service nginx
通过 wget 服务名称.命名空间:端口 的方式,进行通信[9]。这种方式需要dns service对服务名称进行解析,才能访问对应服务的ip。可以看到无法访问,说明dns service有问题。
wget nginx.defalt:80
通过nslookup的非交互模式,测试nginx这个服务域名是否可用[10]。结果是不可用
nslookup nginx.default
我个人觉得下面这张截图比较说明问题
直接访问pod的ip和pod暴露出的端口,失败,报错No route to host
exec进入pod内部,可以正常访问,获得响应,下面再去根据上面的报错来查吧
参考资料:
【1】,3)minikube玩转k8s集群之创建k8s集群
【2】,Nginx启动成功但页面访问不到的解决方法
【3】,nginx启动后,服务器还是无法访问,问题排除:设置防护墙开放断开
【4】,linux刚安装的httpd报curl: (7) Failed connect to 127.0.0.1:80; Connection refused
【5】,curl error (7)拒绝连接
【6】,linux 如何查看端口被哪个进程占用?
【7】,全网最详细的 K8s Service 不能访问排查流程
【8】,K8s - Kubernetes使用详解6(Service的创建和使用)
【9】,如何验证coreDNS是否正常工作?
【10】,k8s DNS服务配置
更多推荐
所有评论(0)