跨可用区的集群k8s的基本操作和配置理解

service

启动:kubectl  -f api_service.yaml -n <namespace>

查询:kubectl get svc -n <namespace>   ;

修改:kubectl apply -f api_service.yaml -n <namespace>

停止service: kubectl delete svc [service名字] 或者 kubectl delete -f api_service.yaml (删除文件中定义的所有service)

pod

启动:kubectl  -f api.yaml -n <namespace>

查询:kubectl get pods -n <namespace>   ;kubectl describe pod [podName] -n <namespace>

修改:kubectl apply -f api.yaml -n <namespace>

删除pod重启: kubectl delete pod [pod_name]

停止pod:kubectl delete -f api.yaml

:pod就是在deployment下面定义的,因此停止了pod,deployment也会停止,而删除pod,由于deployment还在,所以会自动重启

pod和service一般可以写到一个文件中,一次性全部启动,一次性全部删除

apisixroute

启动:kubectl  -f apisixroute.yaml -n <namespace>

查询:kubectl get apisixroute -n <namespace>   ;kubectl describe apisixroute -n <namespace>

修改:kubectl apply -f apisixroute.yaml -n <namespace>

停止: kubectl delete apisixroute <apisixrouter的名字> 或者 kubectl delete -f apisixroute.yaml (删除文件中定义的所有apisixroute)

configmap

==共享k8s更换configmap的操作 ==

  1. kubectl get configmaps -n <namespace>
  2. kubectl delete configmap configmap-config2 -n
  3. 删除application 4.传入新的application 5.kubectl create configmap configmap-config2 --from-file=application.yml -n <namespace> 6. 重启服务

:configmap在pod的yml文件中配置,包括configmap的名称,就是springboot项目中用到的application.yml文件转换的

apiVersion: apps/v1
kind: Deployment
metadata:name: <deployment名称>namespace: <namespace名称>
spec:replicas: 3  <启动的容器的数量,保证高可用>selector:matchLabels:component: test #<是一个列表,用于匹配pod标签,表示deployment应用到那些pod上>template:metadata:labels:component: test  #<和上面的matchLabels.component的值需要保持一致,否则报错>spec:affinity:nodeAffinity: #节点亲和requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions: #选择调度到哪些 AZ- key: topology.kubernetes.io/zoneoperator: Invalues:- suzhou- wuxi#- fenhupodAntiAffinity: #pod 反亲和,控制 pod 起在不同主机requiredDuringSchedulingIgnoredDuringExecution:- labelSelector:matchExpressions:- key: component #根据服务标签自行修改好了operator: Invalues:- test-api #根据服务标签自行修改topologyKey: kubernetes.io/hostnametopologySpreadConstraints: #均匀分布,控制 pod 起在不同 AZ- labelSelector:matchLabels:component: test-api #根据服务标签自行修改maxSkew:1maxSkew: 1  topologyKey: topology.kubernetes.io/zonewhenUnsatisfiable: DoNotScheduletolerations: #容忍,允许 pod 调度到 Euler 节点- effect: NoSchedulekey: noderoleoperator: Equalvalue: EulernodeSelector: #选择调度到 Eulernoderole: Euler                      containers:   #一个pod可以定义多个docker容器   使用kubectl describe <pod名称> 可以查看到docker容器的细节信息- name: <容器名称>image: 镜像地址:镜像号  imagePullPolicy: IfNotPresent  #镜像pull策略,Always(总是),Never(总不),IfNotPresent(如果没有就pull) IfNotPresent 本地的k8s没有镜像才去远程pulllifecycle: {}resources:limits:cpu: 500mmemory: 1Girequests:cpu: 500mmemory: 1Giports:- containerPort: 9900volumeMounts:- name: config-volumemountPath: /apps/svr//resourcevolumes:- name: config-volumeconfigMap:name: test-config2   #用于配置本容器应用的configmap
---
apiVersion: v1
kind: Service
metadata:name: <service名称>
spec:selector:component: test #<一个标签,用于匹配deployment标签,表示service应用到那个service中>ports:- protocol: TCPport: 9900 targetPort: 9900        #将容器的9900端口映射到pod的9900端口,可以通过pod的地址+端口访问容器服务#      nodePort: 32698type: ClusterIP     #除了ClusterIP,还有NodePort,LoadBalancer选项      ClusterIP表示只能在k8s集群内部访问,NodePort表示可以再k8s集群以外的地址访问,需要配置额外的参数nodePort,如上注释掉的部分,表示暴露在外的端口,LoadBalancer是负载均衡的方式(我没用过)

apisixroute.yaml文件

apiVersion: apisix.apache.org/v2alpha1
kind: ApisixRoute
metadata:name: <apisix的名称>namespace: <命名空间>
spec:http:- name: <spec的名称>match:hosts:- console.exam.test.internalpaths:- /exam/console/service/*backend:serviceName: <访问的service的名称>servicePort: 9900plugins:- name: proxy-rewriteenable: trueconfig:regex_uri: [ "^/exam/console/service/(.*)", "/exam/$1" ]  #在转发请求之前,Apache APISIX 会使用 proxy-rewrite 插件对请求的 URI 进行重写,将 /exam/console/service/(.*) 重写为 /exam/$1,其中 $1 是原始路径中 /exam/console/service/ 之后的部分。

==一个有意思的命令 ==

kubectl explain Deployment.spec.selector 解释Deployment里的spec.selector标签 哪个标签不懂的话就改成哪个标签,会有英文解释

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/57538.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF+MVVM案例实战(十五)- 实现一个下拉式菜单(上)

文章目录 1 案例效果2、图标资源下载3、功能实现1.文件创建2、菜单原理分析3、一级菜单两种样式实现1、一级菜单无子项样式实现2、一级菜单有子项样式实现 4、总结 1 案例效果 提示 2、图标资源下载 从阿里矢量素材官网下载需要的菜单图片&#xff0c;如下所示&#xff1a; …

Python 从入门到实战43(Pandas数据结构)

我们的目标是&#xff1a;通过这一套资料学习下来&#xff0c;可以熟练掌握python基础&#xff0c;然后结合经典实例、实践相结合&#xff0c;使我们完全掌握python&#xff0c;并做到独立完成项目开发的能力。 上篇文章我们学习了NumPy数组操作的相关基础知识。今天学习一下pa…

电商行业的流程革命:创建SOP的最佳实践

在电商行业&#xff0c;随着业务规模的扩大和市场环境的快速变化&#xff0c;创建和遵循标准化操作程序&#xff08;SOP&#xff09;变得尤为重要。SOP不仅能够确保业务流程的一致性和高效性&#xff0c;还能帮助企业快速适应市场变化&#xff0c;提高服务质量。本文将探讨电商…

ruoyi-ui启动运行时,报错Error: error:0308010C:digital envelope routines::unsupported。

【问题】 ruoyi-ui启动运行时&#xff0c;报错Error: error:0308010C:digital envelope routines::unsupported。【原因】 是因为 node.js V17版本中最近发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制。【解决方法】 在项目中 package.json 的 scripts …

易考八股文之SpringBoot的启动流程

SpringBoot的启动流程主要包括以下几个步骤&#xff1a; 1.创建SpringApplication对象&#xff1a; 这个过程包括推断启动类型、设置初始化器、初始化监听器以及推断main方法所在的类。 2.运行SpringApplication的run方法&#xff1a; 这是启动SpringBoot应用的核心入口&am…

服务器宝塔安装哪吒监控

哪吒文档地址&#xff1a;https://nezha.wiki/guide/dashboard.html 一、准备工作 OAuth : 我使用的gitee&#xff0c;github偶尔无法访问&#xff0c;不是很方便。第一次用了极狐GitLab&#xff0c;没注意&#xff0c;结果是使用90天&#xff0c;90天后gg了&#xff0c;无法登…

计算机网络(Ⅶ)Web and HTTP

一些术语&#xff1a; Web页&#xff1a;由一些对象组成 对象可以是HTML文件&#xff0c;JPEG图像&#xff0c;Java小程序&#xff0c;声音剪辑文件等 Web页含有一个基本的HTML文件&#xff0c;该基本HTML文件又包含若干对象的引用&#xff08;链接&#xff09; 通过URL对每个对…

【ChatGPT】搜索趋势分析

【ChatGPT】搜索趋势分析 为了分析 ChatGPT 在过去一年的流行趋势&#xff0c;我们可以查看 Google Trends 的数据 安装依赖pytrends pip install pytrends运行以下 Python 脚本 import pandas as pd import matplotlib.pyplot as plt from pytrends.request import TrendR…

后端开发中的分层思想,DAO、Service、Controller、Mapper,VO、DTO、DO、PO每层的作用及调用关系

在后端开发中&#xff0c;应用通常采用分层架构来组织代码&#xff0c;以实现更好的可维护性和可扩展性。在这个架构中&#xff0c;常见的数据传输对象&#xff08;DTO&#xff09;、数据对象&#xff08;DO&#xff09;、值对象&#xff08;VO&#xff09;、持久化对象&#x…

「MinIO快速入门」

官网&#xff1a;MinIO | S3 Compatible Storage for AI 中文&#xff1a;http://minio.org.cn/ MinIO 开始 MinIO 是一款高性能、开源的对象存储服务器。 一、主要特点 高性能 MinIO 采用了分布式架构&#xff0c;能够高效地处理大量数据的存储和访问请求。它针对多核处理…

go的反射

1.介绍 有时我们需要写一个函数&#xff0c;这个函数有能力统一处理各种值类型&#xff0c;而这些类型可能无法共享同一个接口&#xff0c;也可能布局未知&#xff0c;也有可能这个类型在我们设计函数时还不存在&#xff0c;这个时候我们就可以用到反射。 空接口可以存储任意类…

C++ | Leetcode C++题解之第516题最长回文子序列

题目&#xff1a; 题解&#xff1a; class Solution { public:int longestPalindromeSubseq(string s) {int n s.length();vector<vector<int>> dp(n, vector<int>(n));for (int i n - 1; i > 0; i--) {dp[i][i] 1;char c1 s[i];for (int j i 1; j…

2024年,Rust开发语言,现在怎么样了?

Rust开发语言有着一些其他语言明显的优势&#xff0c;但也充满着争议&#xff0c;难上手、学习陡峭等。 Rust 是由 Mozilla 主导开发的通用、编译型编程语言&#xff0c;2010年首次公开。 在 Stack Overflow 的年度开发者调查报告中&#xff0c;Rust 连续多年被评为“最受喜爱…

【C/C++】模拟实现strlen

学习目标&#xff1a; 使用代码模拟实现strlen。 逻辑&#xff1a; strlen 需要输入一个字符串数组类型的变量&#xff0c;并且返回一个整型类型的数据。strlen 需要计算字符串数组有多少个元素。 代码1&#xff1a;使用计数器 #define _CRT_SECURE_NO_WARNINGS 1 #include&…

LLM | 论文精读 | 地学视觉语言大模型:Towards Vision-Language Geo-Foundation Model: A Survey

论文标题&#xff1a;Towards Vision-Language Geo-Foundation Model: A Survey 作者&#xff1a;Yue Zhou, Litong Feng, Yiping Ke, Xue Jiang, Junchi Yan, Xue Yang, Wayne Zhang 期刊&#xff1a;未提供 DOI&#xff1a;https://arxiv.org/abs/2406.09385 email&#x…

Spring JdbcTemplate详解

文章目录 Spring JdbcTemplate详解一、引言二、配置JdbcTemplate1、引入依赖2、配置数据库连接池3、配置JdbcTemplate 三、使用JdbcTemplate操作数据库1、添加数据2、查询数据查询某个值根据条件查询返回某个对象查询对象集合 四、总结 Spring JdbcTemplate详解 一、引言 在J…

【GO学习笔记 go基础】访问控制

Go 没有显式的 private、public 关键字&#xff0c;通过首字母大小写进行访问控制标识。在 Go 中&#xff0c;名称首字母大写表示这个名称&#xff08;变量、函数、结构体等&#xff09;是 导出的&#xff0c;可以在包外部被访问和使用。 1. 导出函数 package examplefunc Set…

【单片机】深入剖析USART与UART的区别

在嵌入式系统和微控制器开发中&#xff0c;串行通信是一个非常关键的概念&#xff0c;涉及到不同设备之间的数据传输。常见的串行通信协议包括UART&#xff08;Universal Asynchronous Receiver/Transmitter&#xff09;和USART&#xff08;Universal Synchronous/Asynchronous…

LC:贪心题解

文章目录 376. 摆动序列 376. 摆动序列 题目链接&#xff1a;https://leetcode.cn/problems/wiggle-subsequence/description/ 这个题目自己首先想到的是动态规划解题&#xff0c;贪心解法真的非常妙&#xff0c;参考下面题解&#xff1a;https://leetcode.cn/problems/wiggle…

淘宝商品评价API的获取与应用

在当今数字化时代&#xff0c;电商平台如淘宝已成为消费者购物的重要渠道。对于商家和开发者而言&#xff0c;如何高效地获取并利用商品评价数据&#xff0c;成为了提升产品竞争力和优化用户体验的关键。本文将详细介绍如何使用淘宝开放平台提供的商品评论API来获取这些宝贵的数…