k8s笔记 | Ingress

2024-05-04 11:44
文章标签 云原生 笔记 k8s ingress

本文主要是介绍k8s笔记 | Ingress,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

安装Ingress

添加helm创库

Installation Guide - Ingress-Nginx Controller

Ingress | Kubernetes

下载包

 将 文件helm 放到 /usr/local/bin/

并给到执行权限

# 添加可执行权限
chmod u+x helm
# 测试是否能运行
helm version# 结果
version.BuildInfo{Version:"v3.14.4", GitCommit:"81c902a123462fd4052bc5e9aa9c513c4c8fc142", GitTreeState:"clean", GoVersion:"go1.21.9"}# 查看仓库列表
helm repo list# 添加仓库列表
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx# 搜索 ingress-nginx
helm search repo ingress-nginx# 拉取 ingress-nginx
helm pull ingress-nginx/ingress-nginx

配置参数

创建namesapce

安装ingress

# 将下载好的安装包解压
tar -xf ingress-nginx-4.10.1.tgz# 解压后进入解压目录
cd ingress-nginx# 修改values.yaml 
# 修改镜像为国内镜像
# registry: registry.cn-hangzhou.aliyuncs.com 这个我试了,镜像没有拉下来
registry: registry.aliyuncs.com
image: google_container/kube-webhook-certgen
image: google_containers/ingress-nginx-controller
hostNetwork: true
dnsPolicy:ClusterFirstWithHostNet
kind: DaemonSet
nodeSelector:ingress:"true"# 将docker.io/jettech/kube-webhook-certgen 改为国内镜像
# 针对 htts 和 http [共有两处]type: ClusterIp # 最上面一个设置就行admissionWebhooks 下的 enable:false# 专门为 ingress创建一个 namespace
kubectl create ns ingress-nginx# 为需要部署ingress的节点 加上标签
kubectl label node k8s-node2 ingress=true# 如需要删除ns下面的资源,可以使用 
kubectl delete ns ingress-nginx# 安装ingress-nginx
helm install ingress-nginx -n ingress-nginx .# 结果  NAME: ingress-nginx
LAST DEPLOYED: Sat Apr 20 02:06:23 2024
NAMESPACE: ingress-nginx
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
The ingress-nginx controller has been installed.
Get the application URL by running these commands:export POD_NAME="$(kubectl get pods --namespace ingress-nginx --selector app.kubernetes.io/name=ingress-nginx,app.kubernetes.io/instance=ingress-nginx,app.kubernetes.io/component=controller --output jsonpath="{.items[0].metadata.name}")"kubectl port-forward --namespace ingress-nginx "${POD_NAME}" 8080:80echo "Visit http://127.0.0.1:8080 to access your application."An example Ingress that makes use of the controller:apiVersion: networking.k8s.io/v1kind: Ingressmetadata:name: examplenamespace: foospec:ingressClassName: nginxrules:- host: www.example.comhttp:paths:- pathType: Prefixbackend:service:name: exampleServiceport:number: 80path: /# This section is only required if TLS is to be enabled for the Ingresstls:- hosts:- www.example.comsecretName: example-tlsIf TLS is enabled for the Ingress, a Secret containing the certificate and key must also be provided:apiVersion: v1kind: Secretmetadata:name: example-tlsnamespace: foodata:tls.crt: <base64 encoded cert>tls.key: <base64 encoded key>type: kubernetes.io/tls# 测试新增label是否 ingress是否会自动新增
kubectl label node k8s-node2 ingress=true
kubectl get po -n ingress-nginx
# 结果
NAME                             READY   STATUS    RESTARTS   AGE
ingress-nginx-controller-ldbpq   1/1     Running   0          71s
ingress-nginx-controller-tzkgs   1/1     Running   0          9m19skubectl label nodes k8s-node3  ingress# 结果
NAME                             READY   STATUS    RESTARTS   AGE
ingress-nginx-controller-tzkgs   1/1     Running   0          13m

基本使用

#查看 
kubectl get po -n ingress-nginx# 结果
NAME                             READY   STATUS    RESTARTS   AGE
ingress-nginx-controller-tzkgs   1/1     Running   0          21s

创建一个ingress

这里需要配合之前创建的 deploy+service

k8s笔记 | Service 服务icon-default.png?t=N7T8https://blog.csdn.net/weixin_41104307/article/details/138240683wolfcode-ingress.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: ingress-nginx-exampleannotations:kubernetes.io/ingress.class: "nginx"
spec:rules:- host: k8s.wolfcode.cnhttp:paths:- pathType: Prefixbackend:service:name: nginx-svcport:number: 80path: /api
# 创建ingress
kubectl create -f wolfcode-ingress.yaml# 查看ingress
kubectl get ingress# 结果
NAME                    CLASS    HOSTS             ADDRESS   PORTS   AGE
ingress-nginx-example   <none>   k8s.wolfcode.cn             80      19s

host文件修改注意事项

192.168.10.102  k8s.wolfcode.cn# 这里需要安装了ingress节点的node才能访问

多域名配置

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: ingress-nginx-exampleannotations:kubernetes.io/ingress.class: "nginx"# nginx.ingress.kubernetes.io/rewrite-target: /
spec:rules:- host: k8s.wolfcode.cnhttp:paths:- pathType: Prefixbackend:service:name: nginx-svcport:number: 80path: /api- pathType: Exactbackend:service:name: nginx-svcport:number: 80path: /

这篇关于k8s笔记 | Ingress的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/959126

相关文章

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

90、k8s之secret+configMap

一、secret配置管理 配置管理: 加密配置:保存密码,token,其他敏感信息的k8s资源 应用配置:我们需要定制化的给应用进行配置,我们需要把定制好的配置文件同步到pod当中容器 1.1、加密配置: secret: [root@master01 ~]# kubectl get secrets ##查看加密配置[root@master01 ~]# kubectl get se

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi