K8S Service-NodePort:固定端口

Service-NodePort:固定端口

两个节点

192.168.81.141 k8s-master

192.168.81.140 k8s-node02

1、service-demo1.yaml定义yaml文件


# -----------------------------------
# 定义Service
# ----------------------------------

apiVersion: v1
kind: Service
metadata:
  name: myapp
spec:
  type: NodePort
  selector:
    app: myapp
  # Service 能够将任意入站 port 映射到某个 targetPort。 默认情况下,出于方便考虑,targetPort 会被设置为与 port 字段相同的值。
  
  # 当在Kubernetes集群中创建多个Service时,确保每个Service使用的NodePort都是唯一的。

  # 使用集群内任意一台nodeIP:nodePort都可以访问到service服务
  ports:
  - port: 18080
    targetPort: 18080
    nodePort: 30001
  
---

apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp
  labels:
    app: myapp
spec:
  # 副本数
  replicas: 2
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
    spec:
      imagePullSecrets:
      - name: kevin-registry-secret
      containers:
      - name: myapp
        image: 192.168.81.141:45678/library/myapp:v1
        ports:
        - containerPort: 18080

2、启动Pod

kubectl apply -f service-demo1.yaml

3、查看对应的SVC,Pod

[root@k8s-master workspace]# kubectl get pod -A -o wide | grep myapp
default                myapp-78794f6bf4-vhpmx                       1/1     Running   0               66m     10.244.235.235   k8s-master   <none>           <none>
default                myapp-78794f6bf4-zq7w6                       1/1     Running   0               66m     10.244.58.218    k8s-node02   <none>           <none>
[root@k8s-master workspace]# kubectl get svc -A -o wide | grep myapp
default                myapp                       NodePort    10.105.194.242   <none>        18080:30001/TCP          64m     app=myapp
[root@k8s-master workspace]# 
[root@k8s-master workspace]# curl 192.168.81.140:30001/ping
ok[root@k8s-master workspace]curl 192.168.81.141:30001/ping
ok[root@k8s-master workspace]#

可以看出来,通过nodeIP:nodePort

4、Nginx配置,

upstream  myapp {
    #server   10.105.194.242:18080 max_fails=3  fail_timeout=30s;
    
    server   192.168.81.141:30001 max_fails=3  fail_timeout=30s;
    server   192.168.81.140:30001 max_fails=3  fail_timeout=30s;
}


server {
       listen 28080;
       server_name localhost;
       location / {
            proxy_pass  http://myapp;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_connect_timeout 25s;
            proxy_send_timeout 60s;
            proxy_read_timeout 60s;
      }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半山猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值