k8s-nginx-ingress-1

启动ingress

由于官网更新下面方法不行了
1.官网下载yaml,官网地址:https://kubernetes.github.io/ingress-nginx/deploy/ 也就是去官网复制下面两句话,并在主节点上运行:
复制yaml(应该算是deployment部分):
提前下载好镜像:docker pull quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.26.2

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

复制yaml(svc部分)

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/baremetal/service-nodeport.yaml

可以去gitlab查找/nginx-ingress-controller:0.26.2版本
地址:https://github.com/kubernetes/ingress-nginx/tree/nginx-0.26.2
在这里插入图片描述
1.将mandatory.yaml文件复制下来
在这里插入图片描述

mkdir -p /root/k8s/config
cd /root/k8s/config
vim mandatory.yaml(复制上述文件)

先创建命名空间:

kubectl create namespaces ingress-nginx

运行文件:

kubectl apply -f mandatory.yaml

2. 将对应的svc文件复制下来(用于暴露端口):
在这里插入图片描述

vim service-nodeport.yaml(复制上述文件内容)
kubectl apply -f service-nodeport.yaml

查看pod

[root@apiserver ingerss]# kubectl get pod -n ingress-nginx 
NAME                                       READY   STATUS    RESTARTS   AGE
nginx-ingress-controller-94cd6cc55-tj9n5   1/1     Running   0          23m

查看svc(可以看到容器暴露在外部的端口是80:31866/TCP,443:30271/):

[root@apiserver ingerss]# kubectl get svc -n ingress-nginx 
NAME            TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx   NodePort   10.110.60.132   <none>        80:31866/TCP,443:30271/TCP   4m9s

ingress HTTP代理访问

创建并运行yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx-dm
spec:
  replicas: 2
  template:
    metadata:
      labels:
        name: nginx
    spec:
      containers:
        - name: nginx
          image: nginx
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-svc
spec:
  ports:
    - port: 80
      targetPort: 80
      protocol: TCP
  selector:
    name: nginx
 kubectl apply -f ingress-http.yaml 

查看svc:

[root@apiserver ingerss]# kubectl get svc
NAME             TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
nginx-svc        ClusterIP      10.104.89.251   <none>        80/TCP         16m

这时直接访问svc的地址是没有问题的:

[root@apiserver ingerss]# curl 10.104.89.251
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

下面我们想通过nginx的ingress方案把svc 的IP暴露出去,实现根据域名访问的结构:
创建yaml并运行:

apiVersion: extensions/v1beta1
kind: Ingress
metadata: 
 name: nginx-test
spec: 
  rules:
   - host: www1.kk.com
     http:
      paths:
       - path: /
         backend:
           serviceName: nginx-svc
           servicePort: 80
kubectl apply -f ingress1.yaml

查看svc

[root@apiserver etc]# kubectl get svc -n ingress-nginx 
NAME            TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx   NodePort   10.110.60.132   <none>        80:31866/TCP,443:30271/TCP   84m

上面的yaml文件中host域名修改为:www1.kk.com,为了在我主机上能访问,所以在/etc/hosts文件中添加:192.168.10.167(master IP)www1.kk.com
在网页上浏览:http://www1.kk.com:31866/(此端口为上面查到的svc的端口)
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值