k8s部署测试ingress

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/scylhy/article/details/85377125

k8s部署测试ingress

cka考试,有ingress的部分,但是ingress-rule好写,但是controller却有些麻烦,  
katacoda上有ingress部署测试的部分,但想在自己的华为cce上部署上ingress,  
挺费劲的~还好成功了~~
环境:华为cce体验集群服务
  • ingress controller:ingress-nginx
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/mandatory.yaml
  • ingress service: bare metal NodePort方式
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/provider/baremetal/service-nodeport.yaml
这样Ingress controller就按照好了,接下来,部署ingress-rule以及测试用的后端服务
  • ingress-rule
[root@cce-demo1522483688765-00274 cka]# cat rule.yaml 
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: webapp-ingress
spec:
  rules:
  - host: my.kubernetes.example
    http:
      paths:
      - path: /webapp1
        backend:
          serviceName: webapp1-svc
          servicePort: 80
      - path: /webapp2
        backend:
          serviceName: webapp2-svc
          servicePort: 80
      - backend:
          serviceName: webapp3-svc
          servicePort: 80
[root@cce-demo1522483688765-00274 cka]# kubectl create -f rule.yaml 
  • backends
[root@cce-demo1522483688765-00274 cka]# cat backend.yaml 
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: webapp1
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: webapp1
    spec:
      containers:
      - name: webapp1
        image: katacoda/docker-http-server:latest
        ports:
        - containerPort: 80
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: webapp2
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: webapp2
    spec:
      containers:
      - name: webapp2
        image: katacoda/docker-http-server:latest
        ports:
        - containerPort: 80
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: webapp3
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: webapp3
    spec:
      containers:
      - name: webapp3
        image: katacoda/docker-http-server:latest
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: webapp1-svc
  labels:
    app: webapp1
spec:
  ports:
  - port: 80
  selector:
    app: webapp1
---
apiVersion: v1
kind: Service
metadata:
  name: webapp2-svc
  labels:
    app: webapp2
spec:
  ports:
  - port: 80
  selector:
    app: webapp2
---
apiVersion: v1
kind: Service
metadata:
  name: webapp3-svc
  labels:
    app: webapp3
spec:
  ports:
  - port: 80
  selector:
    app: webapp3
[root@cce-demo1522483688765-00274 cka]# kubectl create -f backend.yaml 
  • status
[root@cce-demo1522483688765-00274 cka]# kubectl get pods -ningress-nginx
NAME                                        READY     STATUS    RESTARTS   AGE
nginx-ingress-controller-785f44484c-rfvmj   1/1       Running   0          3h
[root@cce-demo1522483688765-00274 cka]# kubectl get svc -ningress-nginx
NAME            TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx   NodePort   10.247.160.254   <none>        80:30674/TCP,443:30130/TCP   2h
[root@cce-demo1522483688765-00274 cka]# kubectl get pods
NAME                       READY     STATUS    RESTARTS   AGE
webapp1-6b8db97858-fsh2h   1/1       Running   0          3h
webapp2-666dd48bb4-6z44w   1/1       Running   0          3h
webapp3-84b7fd69c8-ljgrg   1/1       Running   0          3h
[root@cce-demo1522483688765-00274 cka]# kubectl get svc
NAME          TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
http          ClusterIP   10.247.44.63     <none>        8080/TCP   3d
kubernetes    ClusterIP   10.247.0.1       <none>        443/TCP    3d
webapp1-svc   ClusterIP   10.247.178.170   <none>        80/TCP     3h
webapp2-svc   ClusterIP   10.247.122.72    <none>        80/TCP     3h
webapp3-svc   ClusterIP   10.247.91.36     <none>        80/TCP     3h
[root@cce-demo1522483688765-00274 cka]# 
  • test
[root@cce-demo1522483688765-00274 cka]# kubectl get svc  -ningress-nginx
NAME            TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx   NodePort   10.247.160.254   <none>        80:30674/TCP,443:30130/TCP   3h
[root@cce-demo1522483688765-00274 cka]# curl 10.247.160.254
<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.15.6</center>
</body>
</html>
[root@cce-demo1522483688765-00274 cka]# curl  -H "Host: my.kubernetes.example" 10.247.160.254
<h1>This request was processed by host: webapp3-84b7fd69c8-ljgrg</h1>
[root@cce-demo1522483688765-00274 cka]# curl  -H "Host: my.kubernetes.example" 10.247.160.254/webapp1
<h1>This request was processed by host: webapp1-6b8db97858-fsh2h</h1>
[root@cce-demo1522483688765-00274 cka]# curl  -H "Host: my.kubernetes.example" 10.247.160.254/webapp2
<h1>This request was processed by host: webapp2-666dd48bb4-6z44w</h1>
[root@cce-demo1522483688765-00274 cka]# 

猜你喜欢

转载自blog.csdn.net/scylhy/article/details/85377125