阿里云托管K8S nginx-ingress开放4层端口

目前阿里云刚刚上线K8S集群,但是目前需要K8S集群和单机共存,防止K8S上线后的各种问题,于是需要开放集群内的Redis以及memcache服务。首先就想到使用nginx-ingress4层转发。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis
  labels:
    app: redis
spec:
  selector:
    matchLabels:
      app: redis
  replicas: 1
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: redis
    spec:
      volumes:
      - name: data
        emptyDir: {}
      containers:
      - name: redis
        image: redis
        resources:
          requests:
            cpu: 250m
            memory: 512Mi
        volumeMounts:
        - mountPath: /data
          name: data
        ports:
        - containerPort: 6379
          name: redis

---

apiVersion: v1
kind: Service
metadata:
  name: redis
  labels:
    app: redis
spec:
  ports:
  - protocol: TCP
    port: 6379
    targetPort: 6379
    name: redis
  selector:
    app: redis

1.修改k8s集群nginx-ingress的4层配置数据
kubectl get configMap -nkube-system

kubectl edit configMap/tcp-services -nkube-system

apiVersion: v1
data:  #新增部分
  "6379": default/gearman:6379    #新增部分
kind: ConfigMap
metadata:
  name: tcp-services
  namespace: kube-system

kubectl get svc -nkube-system
可以看到一个nginx-ingress-lb的服务

kubectl edit svc/nginx-ingress-lb -nkube-system

  ports:
  - name: http
    nodePort: 30270
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    nodePort: 32333
    port: 443
    protocol: TCP
    targetPort: 443
  - name: redis                       #add by self
    nodePort: 32334               #add by self
    port: 6379                         #add by self
    protocol: TCP                   #add by self
    targetPort: 6379               #add by self
  selector:
    app: ingress-nginx
  sessionAffinity: None
  type: LoadBalancer

这个时候就可以在外部访问了

猜你喜欢

转载自blog.51cto.com/fengwan/2544519