之前写过一篇mac安装k8s的文章,自动化部署了nginx服务,如下
# 部署一个控制器
kubectl create deployment my-nginx --image=nginx
kubectl expose deployment my-nginx --port=8800 --type=NodePort
复制代码
执行kubectl get svc查看当前服务,这里看到服务已经起来了并且端口也已经映射,将nginx这个服务暴露给外部的客户端。
这里通过kubectl get pods,svc -o wide,pod实际运行的节点是node节点(192.168.31.99),和mac主机ip是能ping通的,去mac的游览器中进行访问发现无法通过32103端口访问。
执行kubectl describe svc my-nginx
按照我的理解,集群内的10.98.57.192:8800、10.244.1.3:8800和集群外的192.168.31.99:32103应该都可以访问到(但是master节点上curl这三个地址都是拒绝连接)。
按照上面的步骤又重新建了一个名为nginx的deployment,并启动端口80.
这里可以看到起了两个service和两个pod,这里访问第二个新起的service192.168.31.99:31140,发现可以访问到,并且master节点curl 10.244.1.4:80,curl 10.108.29.192:80,curl 192.168.31.99:31140都可以。
怀疑是第一个nginx服务没起来,进入到第一个pod内。kubectl exec -it my-nginx-6b74b79f57-k6tpn — /bin/bash,进入到nginx目录内,看下/etc/nginx/init.d/default.conf,port还是80,所以expose后面的端口只是代表你映射的端口,并不是实际服务启动的端口……怪自己命令没详细看了…
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END