使用 Kubeadm 部署 Kubernetes(K8S) 安装 -- Ingress-Ngnix
前置条件:使用 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的更多相关文章
- 使用kubeadm部署Kubernetes v1.13.3
kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具. 这个工具能通过两条指令完成一个kubernetes集群的部署: 1. 安装要求 在开始之前,部署Kubernetes集群 ...
- [原]使用kubeadm部署kubernetes(一)
####################### 以下为声明 ##################### 在公众号 木子李的菜田 输入关键词: k8s 有系列安装文档 此文档是之前做笔记在 ...
- [转帖]CentOS 7 使用kubeadm 部署 Kubernetes
CentOS 7 使用kubeadm 部署 Kubernetes 关闭swap 执行swapoff临时关闭swap. 重启后会失效,若要永久关闭,可以编辑/etc/fstab文件,将其中swap分 ...
- 02 . Kubeadm部署Kubernetes及简单应用
kubeadm部署Kubernetes kubeadm简介 # kubeadm是一位高中生的作品,他叫Lucas Kaldstrom,芬兰人,17岁用业余时间完成的一个社区项目: # kubeadm的 ...
- Kubeadm部署Kubernetes
Kubeadm部署Kubernetes 1.环境准备 主机名 IP 说明 宿主机系统 k8s-master 10.0.0.101 Kubernetes集群的master节点 Ubuntu2004 k8 ...
- 附025.kubeadm部署Kubernetes更新证书
一 查看证书 1.1 查看过期时间-方式一 1 [root@master01 ~]# tree /etc/kubernetes/pki/ 2 [root@master01 ~]# for tls in ...
- K8s 二、(1、kubeadm部署Kubernetes集群)
准备工作 满足安装 Docker 项目所需的要求,比如 64 位的 Linux 操作系统.3.10 及以上的内核版本: x86 或者 ARM 架构均可: 机器之间网络互通,这是将来容器之间网络互通的前 ...
- Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)
背景: 由于工作发生了一些变动,很长时间没有写博客了. 概述: 这篇文章是为了介绍使用kubeadm安装Kubernetes集群(可以用于生产级别).使用了Centos 7系统. 一.Centos7 ...
- Centos7 安装部署Kubernetes(k8s)集群
目录 一.系统环境 二.前言 三.Kubernetes 3.1 概述 3.2 Kubernetes 组件 3.2.1 控制平面组件 3.2.2 Node组件 四.安装部署Kubernetes集群 4. ...
- 使用kubeadm部署Kubernetes集群
一.环境架构与部署准备 1.集群节点架构与各节点所需安装的服务如下图: 2.安装环境与软件版本: Master: 所需软件:docker-ce 17.03.kubelet1.11.1.kubeadm1 ...
随机推荐
- CSS 样式书写顺序及规范
作者:WangMin 格言:努力做好自己喜欢的每一件事 在项目中,大部分前端程序员都没有按照良好的CSS书写规范来写CSS代码,每次写css样式都是用到什么就在样式表后添加什么,完全没有考虑到样式属性 ...
- APP攻防--安卓逆向&JEB动态调试&LSPosed模块&算法提取&Hook技术
JEB环境配置 安装java环境变量(最好jdk11) 安装adb环境变量 设置adb环境变量最好以Android命名 启动开发者模式 设置-->关于平板电脑-->版本号(单机五次) 开启 ...
- HarmonyOS 实战项目
引言 本章将介绍如何在 HarmonyOS 上进行实际项目开发.我们将从项目需求分析开始,逐步完成项目的设计.开发.测试和上线过程. 目录 项目需求分析 项目设计 项目开发 项目测试 项目上线 总结 ...
- PEP9
利用循环语句 counter 是计数器 需要在后面输入个3才是3个数字之和 Set sum to 0 Set counter to 0 Set limit to number of values to ...
- 小闫s人格大爆发 | 坐椅子上?study:sleep
hadoop视频 搭建环境 刷单词 看电影
- fianl详解(适合新手)
final 1.final是Java语言中的一个关键字 2.final表示最终的,不可变的. 3.final可以修饰变量以及方法,还有类等 4.final修饰的变量? 5.final修饰的方法? 6. ...
- 理解Mysql索引原理及特性
作为开发人员,碰到了执行时间较长的sql时,基本上大家都会说"加个索引吧".但是索引是什么东西,索引有哪些特性,下面和大家简单讨论一下. 1 索引如何工作,是如何加快查询速度 索引 ...
- 探索 ECMAScript 2023 中的新数组方法
前言 ECMAScript 2023 引入了一些新功能,以改进语言并使其更加强大和无缝.这个新版本带来了令人兴奋的功能和新的 JavaScript 数组方法,使使用 JavaScript 编程更加愉快 ...
- bash shell笔记整理——外部命令和内部命令区别
linux命令的类别: 外部命令 内部命令 什么是内部命令 bash shell程序内部自带的命令. 什么是外部命令 不是bash shell内建命令,bash会根据用户给定的命令从PATH环境变量中 ...
- Java注解,看完就会用
一.什么是注解 定义:注解(Annotation),也叫元数据.一种代码级别的说明. 它是JDK1.5及以后版本引入的一个特性,与类.接口.枚举是在同一个层次. 它可以声明在包.类.字段.方法.局部变 ...