首页 > 其他分享 >使用 Kubeadm 部署 Kubernetes(K8S) 安装 -- Ingress-Ngnix

使用 Kubeadm 部署 Kubernetes(K8S) 安装 -- Ingress-Ngnix

时间:2022-11-10 16:12:01浏览次数:75  
标签:Ingress Kubernetes created Ngnix ingress nginx k8smaster k8s root

前置条件:使用 Kubeadm 部署 Kubernetes(K8S) 安装

安装ingress-nginx组件(在master节点执行)

  • 通过 ip+port 号进行访问,使用 Service 里的 NodePort 实现,把端口对外暴露
    缺陷:一个端口只能使用一次,一个端口对应一个应用,实际使用中都是用域名,根据不同的域名跳转到不同的端口服务中
  • Ingress 作为统一入口,不同的域名 关联 Service ,由 Service 关联一组 Pod 实现负载均衡
    image

创建 nginx 应用

# 创建 nginx 应用,对外暴露端口使用 NodePort
[root@k8smaster ~]# kubectl create deployment nginx --image=nginx
# 对外暴露 80 端口
[root@k8smaster ~]# kubectl expose deployment nginx --port=80 --type=NodePort
NAME                            READY   STATUS    RESTARTS   AGE
pod/javademo1-d7856c75c-czv2g   1/1     Running   0          152m
pod/javademo1-d7856c75c-n28rs   1/1     Running   0          151m
pod/javademo1-d7856c75c-xzqjc   1/1     Running   0          151m
pod/nginx-f89759699-5hkdw       1/1     Running   0          26d

NAME                 TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
service/javademo1    NodePort    10.106.43.46   <none>        8111:31452/TCP   20d
service/kubernetes   ClusterIP   10.96.0.1      <none>        443/TCP          26d
service/nginx        NodePort    10.103.87.81   <none>        80:30339/TCP     26d

访问地址:http://NodeIP:Port
image

部署 Ingress Controller

https://github.com/kubernetes/ingress-nginx/blob/nginx-0.30.0/deploy/static/
image

hostNetwork:true 新版的没有这个属性,后面再看
image

[root@k8smaster ~]# kubectl apply -f ingress-nginx.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
service/ingress-nginx created
#查看 ingress-nginx 的状态(yaml 中 namespace: ingress-nginx)
[root@k8smaster ~]# kubectl get pods -n ingress-nginx
NAME                                        READY   STATUS    RESTARTS   AGE
nginx-ingress-controller-5cb8688798-gspq4   1/1     Running   0          64m
[root@k8smaster ~]# 

创建 Ingress 规则

ingress-demo.yaml

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: example-ingress
spec:
  rules:
  - host: example.ingressdemo.com
    http:
      paths:
      - path: /
        backend:
          serviceName: web
          servicePort: 80
[root@k8smaster ~]# cat ./ingress-demo.yaml 
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: example-ingress
spec:
  rules:
  - host: example.ingressdemo.com
    http:
      paths:
      - path: /
        backend:
          serviceName: web
          servicePort: 80
[root@k8smaster ~]# kubectl apply -f ingress-demo.yaml 
ingress.networking.k8s.io/example-ingress created
[root@k8smaster ~]# kubectl get pods -n ingress-nginx -o wide
NAME                                        READY   STATUS    RESTARTS   AGE   IP            NODE       NOMINATED NODE   READINESS GATES
nginx-ingress-controller-5cb8688798-gspq4   1/1     Running   0          18h   10.244.2.39   k8snode2   <none>           <none>

修改Host文件

C:\Windows\System32\drivers\etc hosts 文件
image

10.244.2.39   example.ingressdemo.com

ip地址,对应 kubectl get pods -n ingress-nginx -o wide 命令中的 IP

标签:Ingress,Kubernetes,created,Ngnix,ingress,nginx,k8smaster,k8s,root
From: https://www.cnblogs.com/vipsoft/p/16870585.html

相关文章

  • 使用 Kubeadm 部署 Kubernetes(K8S) 安装 -- 持久化存储(PV&PVC)
    使用Kubeadm部署Kubernetes(K8S)安装--持久化存储(NFS网络存储)NFS存在一个弊端,需要知道NFS服务器的地址,配在yaml中PV:持久化存储,对存储资源进行抽象,对外提供可......
  • 使用 Kubeadm 部署 Kubernetes(K8S) 安装 -- 持久化存储(NFS网络存储)
    使用Kubeadm部署Kubernetes(K8S)安装Volume是Pod中能够被多个容器访问的共享目录。Kubernetes的Volume定义在Pod上,它被一个Pod中的多个容器挂载到具体的......
  • ingressClassName
    一、ingressClassName作用可以指定ingresscontroller不能不写,也不能乱写之前部署的ingress-nginx,这里就要写nginx二、由于之前没有添加这个字段,访问的时候报404错......
  • Kubernetes(k8s)部署Promehteus监控
    一、概述Prometheus是一个开源监控系统,生态包括了很多组件,它们中的一些是可选的:主服务PrometheusServer负责抓取和存储时间序列数据客户库负责检测应用程序代码支持......
  • 配置ingress
    配置ingresskind:IngressapiVersion:networking.k8s.io/v1metadata:name:cloudiip-kgmaker-ingressnamespace:mastersspec:ingressClassName:apisix......
  • 第一章 Kubernetes系统基础
    1.1容器技术概述近几十年来,IT领域新技术、新概念层出不穷,例如DevOps、微服务(Microservice)、容器(Container),云计算(CloudComputing)和区块链(Blockchain)等,真有“乱花渐欲......
  • kubernetes概念
    K8s概念:Master:包含APIServer、Scheduler、ControllerManager三个守护进程;Nodes(worker):1.kubelet(集群代理)用于Master和Node之间的通信,Node用于运行多个Pod、2.docker......
  • 使用kubeadm+calico部署kubernetes v1.25.3
    1、环境准备主机名IP地址系统版本k8s-master01k8s-master01.wang.orgkubeapi.wang.orgkubeapi10.0.0.101Ubuntu2004k8s-master02k8s-master02.wang.o......
  • Kubernetes集群YAML文件简介
    概述k8s集群中对资源管理和资源对象编排部署都可以通过声明样式(YAML)文件来解决,也就是可以把需要对资源对象操作编辑到YAML格式文件中,我们把这种文件叫做资源清单文件,通......
  • Kubernetes集群管理工具kubectl简介
     概述kubectl是Kubernetes集群的命令行工具,通过kubectl能够对集群本身进行管理,并能够在集群上进行容器化应用的安装和部署 命令格式kubectl[command][type][na......