Kubernetes的Sevice管理

2024-03-01 12:04
文章标签 kubernetes 管理 sevice

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

服务原理:

所有服务都是根据这个服务衍生或者变化出来,根服务----

服务感知后端靠标签  slelector 标签选择器

kubectl label pods web1 app=web

kubectl cluter-info dump | grep -i service-cluster-ip-range      服务ip取值范围

Service 管理:

创建服务:

---
kind: Service
apiVersion: v1
metadata:name: mysvc
spec:type: ClusterIPselector:app: webports:- protocol: TCPport: 80targetPort: 80

解析域名:

创建后端应用:

[root@master ~]# vim myweb.yaml 
---
kind: Pod
apiVersion: v1
metadata:name: web1labels:app: web   # 服务靠标签寻找后端
spec:containers:- name: apacheimage: myos:httpd[root@master ~]# kubectl apply -f myweb.yaml
pod/web1 created[root@master ~]# curl http://10.245.5.18
Welcome to The Apache.

负载均衡:

固定IP服务:

---
kind: Service
apiVersion: v1
metadata:name: mysvc
spec:type: ClusterIPclusterIP: 10.245.1.80    # 可以设置 ClusterIPselector:app: webports:- protocol: TCPport: 80targetPort: 80

# vim  mysvc.yaml---
kind: Service
apiVersion: v1
metadata:name: mysvc
spec:type: ClusterIPclusterIP: 10.245.1.80    # 可以设置 ClusterIPselector:app: webports:- protocol: TCPport: 80targetPort: 80

端口别名:

[root@master ~]# vim mysvc.yaml 
---
kind: Service
apiVersion: v1
metadata:name: mysvc
spec:type: ClusterIPclusterIP: 10.245.1.80selector:app: webports:- protocol: TCPport: 80targetPort: myhttp    # 使用别名查找后端服务端口[root@master ~]# kubectl apply -f mysvc.yaml 
service/mysvc configured[root@master ~]# vim myweb.yaml 
---
kind: Pod
apiVersion: v1
metadata:name: web1labels:app: web
spec:containers:- name: apacheimage: myos:httpdports:               # 配置端口规范- name: myhttp       # 端口别名protocol: TCP      # 协议containerPort: 80  # 端口号

NodePort:对外发布

云容器引擎:CCE   华为云搭建的K8S

端口范围:30000-32767之间

Ingress:

七层可以基于域名区分,把请求转发给服务,本身不提供服务,ingress只是一个路由,不提供服务.

 
# 资源对象模板
kubectl create ingress mying --class=nginx --rule=nsd.tedu.cn/*=mysvc:80 --dry-run=client -o yaml

自定义请求头

循环上传镜像到harbor

[root@master dashboard]# docker images|while read i t _;do[[ "${t}" == "TAG" ]] && continue[[ "${i}" =~ ^"harbor:443/".+ ]] && continuedocker tag ${i}:${t} harbor:443/plugins/${i##*/}:${t}docker push harbor:443/plugins/${i##*/}:${t}docker rmi ${i}:${t} harbor:443/plugins/${i##*/}:${t}
done

这段脚本在 Docker 环境中执行,主要做了以下几件事:

  1. 列出所有的 Docker 镜像 (docker images)。

  2. 对于每一个镜像,读取其 REPOSITORY(仓库名)和 TAG(标签)。

  3. 跳过所有 TAG 为 "TAG" 的镜像。

  4. 跳过所有 REPOSITORY 以 "harbor:443/" 开头的镜像。

  5. 对于剩余的镜像,执行以下操作:

    • 给该镜像添加一个新的标签(docker tag),新的标签格式为 "harbor:443/plugins/原镜像名:原标签"。
    • 将新标签的镜像推送到 harbor:443 这个 Docker 仓库(docker push)。
    • 删除本地存储的原标签和新标签的镜像(docker rmi)。

这个脚本的主要目的是将本地的一些 Docker 镜像推送到另一个 Docker 仓库(harbor:443),并且在推送之后删除本地的这些镜像。注意,这个脚本可能会删除本地的一些重要镜像,所以在执行之前需要确保这些镜像不再需要,或者已经做好了备份。

此外,这个脚本假设 "harbor:443" 这个仓库已经配置好,并且 Docker 客户端有权限向其中推送镜像。如果没有配置好,或者没有权限,docker push 命令将会失败。

另外,docker rmi 命令在删除镜像时并不会询问确认,所以如果误删除了重要的镜像,可能会导致数据丢失。因此,在执行这个脚本之前,一定要确保你了解它的作用,并且已经做好了必要的准备。

Web管理插件:

发布服务:

---kin: Service
apiVersion: v1
metaata:labels:k8s-app: kubernetes-ashboardname: kubernetes-ashboardnamespace: kubernetes-ashboard
spec:type: NoePort       ports:- port: 443noePort: 30443targetPort: 8443selector:k8s-app: kubernetes-ashboard

服务账户与权限:

创建服务账号:

---
kind: ServiceAccount
apiVersion: v1
metadata:name: kube-adminnamespace: kubernetes-dashboard

获取taoken:

角色与鉴权:

获取列表:多个资源对象               单一资源对象,属性

补丁:局部更新   更新是全部更新

这篇关于Kubernetes的Sevice管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Python中bisect_left 函数实现高效插入与有序列表管理

《Python中bisect_left函数实现高效插入与有序列表管理》Python的bisect_left函数通过二分查找高效定位有序列表插入位置,与bisect_right的区别在于处理重复元素时... 目录一、bisect_left 基本介绍1.1 函数定义1.2 核心功能二、bisect_left 与

Spring中管理bean对象的方式(专业级说明)

《Spring中管理bean对象的方式(专业级说明)》在Spring框架中,Bean的管理是核心功能,主要通过IoC(控制反转)容器实现,下面给大家介绍Spring中管理bean对象的方式,感兴趣的朋... 目录1.Bean的声明与注册1.1 基于XML配置1.2 基于注解(主流方式)1.3 基于Java

基于Python+PyQt5打造一个跨平台Emoji表情管理神器

《基于Python+PyQt5打造一个跨平台Emoji表情管理神器》在当今数字化社交时代,Emoji已成为全球通用的视觉语言,本文主要为大家详细介绍了如何使用Python和PyQt5开发一个功能全面的... 目录概述功能特性1. 全量Emoji集合2. 智能搜索系统3. 高效交互设计4. 现代化UI展示效果

Mysql中的用户管理实践

《Mysql中的用户管理实践》:本文主要介绍Mysql中的用户管理实践,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录13. 用户管理13.1 用户 13.1.1 用户信息 13.1.2 创建用户 13.1.3 删除用户 13.1.4 修改用户

linux服务之NIS账户管理服务方式

《linux服务之NIS账户管理服务方式》:本文主要介绍linux服务之NIS账户管理服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、所需要的软件二、服务器配置1、安装 NIS 服务2、设定 NIS 的域名 (NIS domain name)3、修改主

Python+PyQt5开发一个Windows电脑启动项管理神器

《Python+PyQt5开发一个Windows电脑启动项管理神器》:本文主要介绍如何使用PyQt5开发一款颜值与功能并存的Windows启动项管理工具,不仅能查看/删除现有启动项,还能智能添加新... 目录开篇:为什么我们需要启动项管理工具功能全景图核心技术解析1. Windows注册表操作2. 启动文件

gradle第三方Jar包依赖统一管理方式

《gradle第三方Jar包依赖统一管理方式》:本文主要介绍gradle第三方Jar包依赖统一管理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景实现1.顶层模块build.gradle添加依赖管理插件2.顶层模块build.gradle添加所有管理依赖包

基于Python打造一个智能单词管理神器

《基于Python打造一个智能单词管理神器》这篇文章主要为大家详细介绍了如何使用Python打造一个智能单词管理神器,从查询到导出的一站式解决,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 项目概述:为什么需要这个工具2. 环境搭建与快速入门2.1 环境要求2.2 首次运行配置3. 核心功能使用指