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

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

  • 通过 ip+port 号进行访问,使用 Service 里的 NodePort 实现,把端口对外暴露

    缺陷:一个端口只能使用一次,一个端口对应一个应用,实际使用中都是用域名,根据不同的域名跳转到不同的端口服务中
  • Ingress 作为统一入口,不同的域名 关联 Service ,由 Service 关联一组 Pod 实现负载均衡

创建 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

部署 Ingress Controller

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

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

[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 文件

10.244.2.39   example.ingressdemo.com

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

使用 Kubeadm 部署 Kubernetes(K8S) 安装 -- Ingress-Ngnix的更多相关文章

  1. 使用kubeadm部署Kubernetes v1.13.3

    kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具. 这个工具能通过两条指令完成一个kubernetes集群的部署: 1. 安装要求 在开始之前,部署Kubernetes集群 ...

  2. [原]使用kubeadm部署kubernetes(一)

    #######################    以下为声明  ##################### 在公众号  木子李的菜田 输入关键词:   k8s 有系列安装文档 此文档是之前做笔记在 ...

  3. [转帖]CentOS 7 使用kubeadm 部署 Kubernetes

    CentOS 7 使用kubeadm 部署 Kubernetes   关闭swap 执行swapoff临时关闭swap. 重启后会失效,若要永久关闭,可以编辑/etc/fstab文件,将其中swap分 ...

  4. 02 . Kubeadm部署Kubernetes及简单应用

    kubeadm部署Kubernetes kubeadm简介 # kubeadm是一位高中生的作品,他叫Lucas Kaldstrom,芬兰人,17岁用业余时间完成的一个社区项目: # kubeadm的 ...

  5. Kubeadm部署Kubernetes

    Kubeadm部署Kubernetes 1.环境准备 主机名 IP 说明 宿主机系统 k8s-master 10.0.0.101 Kubernetes集群的master节点 Ubuntu2004 k8 ...

  6. 附025.kubeadm部署Kubernetes更新证书

    一 查看证书 1.1 查看过期时间-方式一 1 [root@master01 ~]# tree /etc/kubernetes/pki/ 2 [root@master01 ~]# for tls in ...

  7. K8s 二、(1、kubeadm部署Kubernetes集群)

    准备工作 满足安装 Docker 项目所需的要求,比如 64 位的 Linux 操作系统.3.10 及以上的内核版本: x86 或者 ARM 架构均可: 机器之间网络互通,这是将来容器之间网络互通的前 ...

  8. Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)

    背景: 由于工作发生了一些变动,很长时间没有写博客了. 概述: 这篇文章是为了介绍使用kubeadm安装Kubernetes集群(可以用于生产级别).使用了Centos 7系统. 一.Centos7 ...

  9. Centos7 安装部署Kubernetes(k8s)集群

    目录 一.系统环境 二.前言 三.Kubernetes 3.1 概述 3.2 Kubernetes 组件 3.2.1 控制平面组件 3.2.2 Node组件 四.安装部署Kubernetes集群 4. ...

  10. 使用kubeadm部署Kubernetes集群

    一.环境架构与部署准备 1.集群节点架构与各节点所需安装的服务如下图: 2.安装环境与软件版本: Master: 所需软件:docker-ce 17.03.kubelet1.11.1.kubeadm1 ...

随机推荐

  1. Android 面试知识总结

    Android知识点 1. 四大组件 分别是Activity.Service.ContentProvider.BroadcastReceiver. Activity称为活动,属于展示型组件,主要负责显 ...

  2. mac中删除本地maven库中下载失败的.lastUpdated文件

    在 macOS 中,要删除本地 Maven 仓库中所有的 .lastUpdated 文件,您可以使用 find 命令结合 rm 命令来执行这个操作.这可以在终端(Terminal)中完成. 打开您的终 ...

  3. 使用 PyTorch 完全分片数据并行技术加速大模型训练

    本文,我们将了解如何基于 PyTorch 最新的 完全分片数据并行 (Fully Sharded Data Parallel,FSDP) 功能用 Accelerate 库来训练大模型. 动机 随着机器 ...

  4. SpringBoot Seata 死锁问题排查

    现象描述:Spring Boot项目,启动的时候卡住了,一直卡在那里不动,没有报错,也没有日志输出 但是,奇怪的是,本地可以正常启动 好吧,姑且先不深究为什么本地可以启动而部署到服务器上就无法启动的问 ...

  5. Oracle-startup和shutdown

    startup不同参数作用 startup nomount 非安装启动,以这种方式启动可执行: 1.重建控制文件. 2.重建数据库读取init.ora文件. 3.启动实例,即启动SGA和后台进程,需要 ...

  6. 【笔记整理】忽略https证书校验

    import requests url = "https://sam.huat.edu.cn:8443/selfservice/" # 默认不忽略ssl证书,如果有证书问题的网站会 ...

  7. pytest框架中conftest.py的作用

    conftest.py 是 pytest 框架中的一个特殊文件.它允许你为测试提供自定义的配置和钩子函数.以下是 conftest.py 的主要作用: 提供全局配置:你可以在 conftest.py ...

  8. 前端 Git 使用约定

    前端 Git 使用约定 背景 开发前端项目,有以下困惑: 使用哪个分支开发,哪个分支发布 修复线上bug的流程是什么,如何避免修复完了下次却又出现了 cms分支有十多个,是否都有用 如何快速找到之前某 ...

  9. 深度解析 PyTorch Autograd:从原理到实践

    本文深入探讨了 PyTorch 中 Autograd 的核心原理和功能.从基本概念.Tensor 与 Autograd 的交互,到计算图的构建和管理,再到反向传播和梯度计算的细节,最后涵盖了 Auto ...

  10. Python——第一章:用户交互

    变量 = input(提示语)首先会在屏幕中显示出提示语, 用户输入内容. 然后把用户输入的内容交给前面的变量 案例1: a = input("请输入第一个数字:") #括号里是提 ...