kubernetes-使用Nginx配置ingress-controllers

下载 Nginx Ingress Controller 配置文件:

wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml

我下载不了,就直接拷贝过来了

修改一下代码:

    spec:
      # wait up to five minutes for the drain of connections
      # 增加 hostNetwork: true,意思是开启主机网络模式,暴露 Nginx 服务端口 80
      hostNetwork: true
      terminationGracePeriodSeconds: 300
      serviceAccountName: nginx-ingress-serviceaccount
      nodeSelector:
        kubernetes.io/os: linux
      containers:
        - name: nginx-ingress-controller
          # 修改国内镜像
          image: quay.azk8s.cn/kubernetes-ingress-controller/nginx-ingress-controller:0.26.1

 查看Nginx Ingress Controller:

kubectl get pods -n ingress-nginx -o wide
NAME                                        READY   STATUS    RESTARTS   AGE   IP               NODE        NOMINATED NODE   READINESS GATES
nginx-ingress-controller-8569fd8dbb-zcgsz   1/1     Running   0          42s   192.168.17.181   boke-node   <none>           <none>

 再部署一个服务和一个ingress看是否成功:

配置nexus服务:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nexus
spec:
  selector:
    matchLabels:
       name: nexus
  replicas: 1
  template:
    metadata:
      labels:
        name: nexus
    spec:
      containers:
      - name: nexus
        image: sonatype/nexus3
        ports:
        - containerPort: 8081
---
apiVersion: v1
kind: Service
metadata:
   name: nexus
spec:
  ports:
    - port: 8081
      targetPort: 8081
#  # ClusterIP, NodePort, LoadBalancer
  type: ClusterIP
  selector:
    name: nexus

 配置ingress:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: cafe-ingress
  annotations:
    nginx.org/sticky-cookie-services: "serviceName=coffee-svc srv_id expires=1h path=/coffee"
    nginx.com/jwt-realm: "Cafe App"
    nginx.com/jwt-token: "$cookie_auth_token"
    nginx.com/jwt-key: "cafe-jwk"
spec:
  rules:
  - host: k8s.test.com
    http:
      paths:
      - path:
        backend:
          # service名字
          serviceName: nexus
          # service端口号
          servicePort: 8081

 查看nexus:

kubectl get deployments
NAME    READY   UP-TO-DATE   AVAILABLE   AGE
nexus   1/1     1            1           7m45s
kubectl get service
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP    160m
nexus        ClusterIP   10.102.209.21   <none>        8081/TCP   8m15s

查看ingress:

kubectl get ingress
NAME           HOSTS          ADDRESS   PORTS   AGE
cafe-ingress   k8s.test.com             80      6m35s

我修改了一下C:\Windows\System32\drivers\etc 的host 添加 192.168.17.181 k8s.test.com

进入k8s.test.com:

 

 就成功了

 

posted @ 2019-11-05 20:21  何宝荣的午后红茶  阅读(520)  评论(0编辑  收藏  举报