K8S Service-NodePort:固定端口

发布于:2024-08-01 ⋅ 阅读:(152) ⋅ 点赞:(0)

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;
      }
}

网站公告

今日签到

点亮在社区的每一天
去签到