前置条件:使用 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. Intellij13 IDEA常用快捷键 (mac 10.5 +),优化,使用出现的问题汇总

    http://blog.csdn.net/xiaohulunb/article/details/20729261

  2. 反转字符串里的单词(leetcode 4.10每日打卡)

    给定一个字符串,逐个翻转字符串中的每个单词.   示例 1: 输入: "the sky is blue"输出: "blue is sky the" 示例 2: ...

  3. JeecgBoot 框架升级至 Spring Boot3 的实战步骤

    JeecgBoot 框架升级 Spring Boot 3.1.5 步骤 JEECG官方推出SpringBoot3分支: https://github.com/jeecgboot/jeecg-boot/ ...

  4. 串ababaaababaa的next和串ababaabab的nextval

    这个next求法我看了视频和网上的,发现有两种求法,一种是求最左边和最右边相等的最大个数, 就比如说串ababaaababaa,这个 所以这个3的位置为1,依次下来. 这个唯一要注意的是,是按照你选择 ...

  5. 浅谈SQL优化小技巧

    回顾MySQL的执行过程,帮助介绍如何进行sql优化. (1)客户端发送一条查询语句到服务器: (2)服务器先查询缓存,如果命中缓存,则立即返回存储在缓存中的数据: (3)未命中缓存后,MySQL通过 ...

  6. [ICPC2014 WF] Pachinko

    [ICPC2014 WF] Pachinko 题面翻译 题目描述 有一个宽度为 \(w\) 高度为 \(h\) 的方格纸, $ w \times h$ 的格子中,有一些是空的,有一些是洞,有一些是障碍 ...

  7. 实践篇:1 虚拟机使用rmp方式安装部署GitLab-ce

    01 环境准备 电脑:MAC Air 虚拟机:VMware Fusion 12.2.3 Linux环境:CentOS 7 02 rpm方式安装部署GitLab服务 步骤1:centos 7 安装wge ...

  8. Feign远程调用超时问题

    1.问题概述 上图的场景,每次重启项目后openFeign都会报一个超时异常,异常信息如下 2.为什么会产生这个异常? 当项目刚启动时,数据库连接池的中的连接并不会创建;第一次请求的时候才会初始化各种 ...

  9. 深入 K8s 网络原理(一)- Flannel VXLAN 模式分析

    目录 1. 概述 2. TL;DR 3. Pod 间通信问题的由来 4. 测试环境准备 5. 从 veth 设备聊起 6. 网桥 cni0 6.1 在 Pod 内看网卡信息 6.2 在 host 上看 ...

  10. 数据库系列:业内主流MySQL数据中间件梳理

    数据库系列:MySQL慢查询分析和性能优化 数据库系列:MySQL索引优化总结(综合版) 数据库系列:高并发下的数据字段变更 数据库系列:覆盖索引和规避回表 数据库系列:数据库高可用及无损扩容 数据库 ...