一、如何实现外界能访问

外界访问不了

1、启动svc

[root@k8s-master ~]# cat myweb-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx
spec:
type: NodePort
ports:
- port: 80
nodePort: 30001
selector:
app: myweb
[root@k8s-master ~]# kubectl create -f myweb-svc.yaml
service "nginx" created

2、查看svc状态

[root@k8s-master ~]# kubectl get all
NAME DESIRED CURRENT READY AGE
rc/myweb 3 3 3 19m NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
svc/kubernetes 10.254.0.1 <none> 443/TCP 22h
svc/nginx 10.254.205.175 <nodes> 80:30001/TCP 27s NAME READY STATUS RESTARTS AGE
po/myweb-7m76h 1/1 Running 0 18m
po/myweb-kzq8c 1/1 Running 0 18m
po/myweb-mnf7x 1/1 Running 0 18m

3、被外界访问原理图

二、为什么是30001?

1、修改为3000看看是否正常?

[root@k8s-master ~]# vim myweb-svc.yaml
更改端口为:3000
[root@k8s-master ~]# kubectl delete svc/nginx
service "nginx" deleted
[root@k8s-master ~]# kubectl create -f myweb-svc.yaml
The Service "nginx" is invalid: spec.ports[0].nodePort: Invalid value: 3000:
provided port is not in the valid range. The range of valid ports is 30000-32767

2、端口更改为30001

[root@k8s-master ~]# vim myweb-svc.yaml
更改端口为:30001
[root@k8s-master ~]# kubectl create -f myweb-svc.yaml
service "nginx" created
[root@k8s-master ~]# kubectl get all
NAME DESIRED CURRENT READY AGE
rc/myweb 3 3 3 25m NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
svc/kubernetes 10.254.0.1 <none> 443/TCP 22h
svc/nginx 10.254.145.15 <nodes> 80:30027/TCP 8s NAME READY STATUS RESTARTS AGE
po/myweb-7m76h 1/1 Running 0 24m
po/myweb-kzq8c 1/1 Running 0 24m
po/myweb-mnf7x 1/1 Running 0 25m

默认不填写,自动分配30000-32767内任意一端口

三、自动加载到负载均衡里面

1、修改svc副本数为1

[root@k8s-master ~]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE
myweb-7m76h 1/1 Running 0 26m 172.16.10.2 k8s-node1
myweb-kzq8c 1/1 Running 0 26m 172.16.48.4 k8s-node2
myweb-mnf7x 1/1 Running 0 26m 172.16.48.2 k8s-node2 [root@k8s-master ~]# kubectl edit rc myweb
replicas: 1
replicationcontroller "myweb" edited [root@k8s-master ~]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE
myweb-mnf7x 1/1 Running 0 28m 172.16.48.2 k8s-node2
[root@k8s-master ~]# kubectl describe svc nginx
Name: nginx
Namespace: default
Labels: <none>
Selector: app=myweb
Type: NodePort
IP: 10.254.145.15
Port: <unset> 80/TCP
NodePort: <unset> 30027/TCP
Endpoints: 172.16.48.2:80
Session Affinity: None
No events.

2、修改svc副本数为5

[root@k8s-master ~]# kubectl edit rc myweb
replicas: 5
replicationcontroller "myweb" edited
[root@k8s-master ~]# kubectl describe svc nginx
Name: nginx
Namespace: default
Labels: <none>
Selector: app=myweb
Type: NodePort
IP: 10.254.145.15
Port: <unset> 80/TCP
NodePort: <unset> 30027/TCP
Endpoints: 172.16.10.2:80,172.16.10.3:80,172.16.48.2:80 + 1 more...
Session Affinity: None
No events.
[root@k8s-master ~]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE
myweb-415zs 1/1 Running 0 9s 172.16.48.3 k8s-node2
myweb-7bw5f 1/1 Running 0 9s 172.16.10.3 k8s-node1
myweb-7kzh2 1/1 Running 0 9s 172.16.48.4 k8s-node2
myweb-j45xb 1/1 Running 0 9s 172.16.10.2 k8s-node1
myweb-mnf7x 1/1 Running 0 30m 172.16.48.2 k8s-node2

四、上网测试截图

1、node1 web截图

2、node2 web截图

最新文章

  1. Activity生命周期(二)
  2. 微信内测&quot;微视频&quot; 朋友圈可以发6-8秒短视频
  3. thinkphp 验证码的使用
  4. 如何消除选定TextBox后的光标但又不失去焦点。
  5. Unity3D研究院之与Android相互传递消息
  6. codeblocks常用快捷键
  7. Qt使用AES加密算法对字符串进行加密
  8. Day5模块-random模块
  9. vuejs axios安装配置与使用
  10. (3)Deep Learning之神经网络和反向传播算法
  11. 0x80070522:客户端没有所需的特权的解决方法(win7,win10通过)
  12. C罗转会尤文图斯
  13. 分解数据表(将一个datatable按数据量分隔成多个table)
  14. HTML学习笔记06-连接
  15. shell中函数返回值
  16. 【noip模拟赛3】确定的位置 (map的遍历 位置原理)
  17. ubuntu在终端使用的常用命令
  18. 【转】arm-none-linux-gnueabi-gcc下载
  19. HDU 4716 A Computer Graphics Problem (水题)
  20. es6js promise在ie中报错“未定义”

热门文章

  1. leaflet动态路径
  2. phpstorm设置编码格式
  3. 对于windows操作系统磁盘访问权限修改的手残教训
  4. Vue学习之路2-项目初搭建
  5. LeetCode算法题-Keyboard Row(Java实现)
  6. JavaScript作用域链的理解
  7. Redis管道和发布订阅
  8. 【转】简单理解Vue中的nextTick
  9. Linux:Day13(上) CentOS系统启动流程
  10. 24 python初学(异常)