前提:
1、服务器已经运行了 ingress-controller 服务
2、测试用 Nginx 镜像已经上传到仓库(方便测试用,也可忽略)
一、查看运行环境是否正常
[root@k8s-master ingress]# kubectl get pods -n ingress-nginx NAME READY STATUS RESTARTS AGE default-http-backend-5c9bb94849-snbm7 1/1 Running 0 19h nginx-ingress-controller-84d5b54fdf-hrx7p 1/1 Running 0 19h [root@k8s-master ingress]# kubectl get svc -n ingress-nginx NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE default-http-backend ClusterIP 10.103.169.169 <none> 80/TCP 19h ingress-nginx NodePort 10.107.203.11 <none> 80:32080/TCP,443:32443/TCP 18h [root@k8s-master ingress]#
二、搭建 test-v1 服务
书写一个 test-v1.yaml 配置文件,用于发布服务
apiVersion: extensions/v1beta1 kind: Deployment metadata: name: nginx-v1 spec: replicas: 2 template: metadata: labels: name: nginx spec: containers: - name: nginx image: registry.cn-hangzhou.aliyuncs.com/wangzy001/nginx:v1 #提前在阿里云准备好的测试镜像 imagePullPolicy: IfNotPresent #拉取策略 ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: test-v1 spec: ports: - port: 80 targetPort: 80 protocol: TCP selector: name: nginx
发布 test-v1 服务并检查
# 1、书写并运行资源配置文件
[root@k8s-master ingress]# vi test-v1.yml [root@k8s-master ingress]# kubectl apply -f test-v1.yml deployment.extensions/nginx-v1 created service/test-v1 created
# 2、查看 Service 服务 [root@k8s-master ingress]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 9d test-v1 ClusterIP 10.106.123.237 <none> 80/TCP 12s
# 3、访问测试页面 [root@k8s-master ingress]# curl 10.106.123.237 Hello wangzy! This is v1 version
二、搭建 test-v2 服务
1、直接复制 test-v1.yml 配置文件,并修改内容(也可自己重新书写)
[root@k8s-master ingress]# cp test-v1.yml test-v2.yml
[root@k8s-master ingress]# vi test-v2.yml
修改内容如下
apiVersion: extensions/v1beta1 kind: Deployment metadata: name: nginx-v2 spec: replicas: 2 template: metadata: labels: name: nginx-version2 spec: containers: - name: nginx-version image: registry.cn-hangzhou.aliyuncs.com/wangzy001/nginx:v2 #提前在阿里云准备好的测试镜像 imagePullPolicy: IfNotPresent ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: test-v2 spec: ports: - port: 80 targetPort: 80 protocol: TCP selector: name: nginx-version2
发布 test-v2 服务并检查
# 1、运行资源配置文件
[root@k8s-master ingress]# kubectl apply -f test-v2.yml deployment.extensions/nginx-v2 created service/test-v2 created
# 2、查看 Service 服务 [root@k8s-master ingress]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 9d test-v1 ClusterIP 10.106.123.237 <none> 80/TCP 9m32s test-v2 ClusterIP 10.109.40.7 <none> 80/TCP 7s
# 访问测试页面 [root@k8s-master ingress]# curl 10.109.40.7 Hello wangzy! This is v2 version [root@k8s-master ingress]#
三、书写 Ingress 文件,将两个 Service 服务进行代理
配置文件内容如下(也可合并)
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: test-nginxv1 spec: rules: - host: www1.wangzy.com http: paths: - path: / backend: serviceName: test-v1 servicePort: 80 --- apiVersion: extensions/v1beta1 kind: Ingress metadata: name: test-nginxv2 spec: rules: - host: www2.wangzy.com http: paths: - path: / backend: serviceName: test-v2 servicePort: 80
操作步骤
# 1、创建文件并运行
[root@k8s-master ingress]# vi ingress-http.yml [root@k8s-master ingress]# kubectl apply -f ingress-http.yml ingress.extensions/test-nginxv1 created ingress.extensions/test-nginxv2 created
# 2、查看 Pod 运行情况 [root@k8s-master ingress]# kubectl get pods NAME READY STATUS RESTARTS AGE nginx-v1-bb59cf44c-72qmn 1/1 Running 0 17m nginx-v1-bb59cf44c-jw8pb 1/1 Running 0 17m nginx-v2-b478c44b4-mfb5j 1/1 Running 0 8m34s nginx-v2-b478c44b4-z2nqf 1/1 Running 0 8m34s
# 3、查看 Ingress 信息 [root@k8s-master ingress]# kubectl get ingress NAME HOSTS ADDRESS PORTS AGE test-nginxv1 www1.wangzy.com 80 12m test-nginxv2 www2.wangzy.com 80 12m [root@k8s-master ingress]#
# 4、查看访问信息
[root@k8s-master ingress]# kubectl get svc -n ingress-nginx NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE default-http-backend ClusterIP 10.103.169.169 <none> 80/TCP 19h ingress-nginx NodePort 10.107.203.11 <none> 80:32080/TCP,443:32443/TCP 18h [root@k8s-master ingress]#
四、修改本地 Host 文件
# 目录位置:C:\Windows\System32\drivers\etc 部署服务对应IP www1.wangzy.com 部署服务对应IP www2.wangzy.com
五、访问页面测试
页面一
页面二