Kubernetes(k8s)集群简单搭建之ingress-nginx

这是我自己的主机名

cat /etc/hosts
192.168.1.161  master
192.168.1.162  node01
192.168.1.163  node02

1、安装ingress-nginx

需要下载mandatory.yaml文件,由于文件内容太长,放到这里了下载

[root@master ingress-nginx]# kubectl apply -f mandatory.yaml 
namespace/ingress-nginx created
configmap/nginx-configuration created
configmap/tcp-services created
configmap/udp-services created
serviceaccount/nginx-ingress-serviceaccount created
clusterrole.rbac.authorization.k8s.io/nginx-ingress-clusterrole created
role.rbac.authorization.k8s.io/nginx-ingress-role created
rolebinding.rbac.authorization.k8s.io/nginx-ingress-role-nisa-binding created
clusterrolebinding.rbac.authorization.k8s.io/nginx-ingress-clusterrole-nisa-binding created
deployment.apps/nginx-ingress-controller created
limitrange/ingress-nginx created

2、部署ingress-nginx service

下面是service-nodeport文件的内容,也可以在这里下载

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
      protocol: TCP
      nodePort: 32080  #http
    - name: https
      port: 443
      targetPort: 443
      protocol: TCP
      nodePort: 32443  #https
  selector:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx

注册

[root@master ingress-nginx]# kubectl apply -f service-nodeport.yaml 
service/ingress-nginx created

[root@master ingress-nginx]# kubectl get svc -n ingress-nginx
NAME            TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx   NodePort   10.97.144.99   <none>        80:32080/TCP,443:32443/TCP   134m

3、部署ingress

[root@master ingress-nginx]# vi ingress-myapp.yaml 
apiVersion: extensions/v1beta1          
kind: Ingress           
metadata:                       
  name: ingress-myapp    #ingress的名称
  namespace: default     #所属名称空间
  annotations:           
    kubernetes.io/ingress.class: "nginx"
spec:      
  rules:   #定义后端转发的规则
  - host: www2.swx.com    #通过域名进行转发
    http:
      paths:
      - path:       
        backend:    #配置后端服务
          serviceName: myapp
          servicePort: 80
[root@master ingress-nginx]# kubectl apply -f ingress-myapp.yaml
[root@master ingress-nginx]# kubectl get ingress
NAME            CLASS    HOSTS          ADDRESS        PORTS   AGE
ingress-myapp   <none>   www2.swx.com   10.97.144.99   80      42m

 4、修改本地host文件,进行访问

host文件路径在 C:\Windows\System32\drivers\etc

增加域名

192.168.1.161 www1.swx.com
192.168.1.161 www2.swx.com

 5、配置tomcat测试

[root@master ingress-nginx]# vi tomcat-demo.yaml
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:7-alpine
        ports:
        - name: http
          containerPort: 8080
          name: ajp
          containerPort: 8009

[root@master ingress-nginx]# kubectl get pods
NAME                                 READY   STATUS    RESTARTS   AGE
myapp-backend-pod-58b7f5cf77-4djv8   1/1     Running   0          154m
myapp-backend-pod-58b7f5cf77-frnwg   1/1     Running   0          154m
myapp-backend-pod-58b7f5cf77-rft5k   1/1     Running   0          154m

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

[root@master ingress-nginx]# kubectl apply -f ingress-tomcat.yaml 
ingress.extensions/tomcat created

 测试访问,host文件需要新增tomcat.com域名

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林中泽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值