六. k8s--ingress学习笔记

匿名 (未验证) 提交于 2019-12-02 23:57:01

Ŀ¼

  • trafik
  • envoy
  • nginx

ingress和service的区别与联系

mkdir nginx-ingress cd nginx-ingress wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.25.1/deploy/static/mandatory.yaml kubectl apply -f mandatory.yaml kubectl get ns kubectl get pod -n ingress-nginx
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/baremetal/service-nodeport.yaml
cat service-nodeport.yaml apiVersion: v1 kind: Service metadata:   name: ingress-nginx   namespace: ingress-nginx   labels:     app.kubernetes.io/name: ingress-nginx     app.kubernetes.io/part-of: ingress-nginx spec:   type: NodePort   ports:     - name: http       port: 80       targetPort: 80       nodePort: 30080     #指定了nodeport, 好处便于记忆, 坏处可能会端口冲突       protocol: TCP     - name: https       port: 443       targetPort: 443       nodePort: 30443     #指定了nodeport, 好处便于记忆, 坏处可能会端口冲突       protocol: TCP   selector:     app.kubernetes.io/name: ingress-nginx     app.kubernetes.io/part-of: ingress-nginx
kubectl apply -f service-nodeport.yaml kubectl get pod -n ingress-nginx kubectl get svc -n ingress-nginx

һ. myapp

创建deployment以及对应的service

apiVersion: v1 kind: Service metadata:     name: myapp     namespace: default spec:     selector:         app: myapp         release: canary     ports:     - name: http       targetPort: 80       port: 80 --- apiVersion: apps/v1 kind: Deployment metadata:     name: myapp-deploy     namespace: default spec:     replicas: 2     selector:       matchLabels:         app: myapp         release: canary     template:       metadata:         labels:           app: myapp           release: canary       spec:         containers:         - name: myapp           image: ikubernetes/myapp:v1           ports:           - name: http             containerPort: 80

创建对应service的ingress规则

apiVersion: extensions/v1beta1 kind: Ingress metadata:     name: ingress-myapp     namespace: default     annotations:         kubernetes.io/ingress.class: "nginx" spec:     rules:     - host: myapp.magedu.com       http:           paths:           - path:             backend:                 serviceName: myapp                 servicePort: 80

拉取镜像

docker pull tomcat:8.5.32-jre8-alpine

创建deployment以及对应的service

apiVersion: v1 kind: Service metadata:     name: tomcat     namespace: default spec:     selector:         app: tomcat         release: canary     ports:     - name: http       targetPort: 8080       port: 8080     - name: ajp       targetPort: 8009       port: 8009 --- apiVersion: apps/v1 kind: Deployment metadata:     name: tomcat-deploy     namespace: default spec:     replicas: 2     selector:       matchLabels:         app: tomcat         release: canary     template:       metadata:         labels:           app: tomcat           release: canary       spec:         containers:         - name: tomcat           image: tomcat:8.5.32-jre8-alpine           ports:           - name: http             containerPort: 8080           - name: ajp             containerPort: 8009

创建对应service的ingress规则

apiVersion: extensions/v1beta1 kind: Ingress metadata:     name: ingress-tomcat     namespace: default     annotations:         kubernetes.io/ingress.class: "nginx" spec:     rules:     - host: tomcat.magedu.com       http:           paths:           - path:             backend:                 serviceName: tomcat                 servicePort: 8080

https://zhuanlan.zhihu.com/p/62623207

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!