Kubernetes-in-action (一)

news2025/7/30 0:16:11

Kubernetes-in-action (一)

链接为书内容中对应代码的地址:https://github.com/luksa/kubernetes-in-action


前置之 docker 基础

  • 安装docker
  • 使用docker安装镜像、进入镜像,查看进行信息
    docker build -t kubia . # 使用当前目录的Dockerfile构建镜像,镜像名为 kubia, 版本默认lates
    docker run --name kubia-container -p 8081:8080 -d kubia # 启动一个容器名为kubia-container, 并且宿主机的8081对应容器的8080端口,-d 后台启动
    docker inspect kubia-container # 查看容器的信息
    docker exec -it kubia-container bash # 进去容器的控制台,-i 确保标准输入流开发,-t 分配伪终端
    docker stop kubia-container # 停止容器运行
    docker rm kubia-container # 删除容器,必须在停止后删除
    docker tag kubia yzh001/kubia # 为kubia添加tag,等同一个新的image,tag不同。 yzh001可以换成自己docker hub id
    docker push yzh001/kubia # 上传新的image到自己仓库,要登入docker,使用 `docker login` 命令
    ps aux # 查看系统进程 
    

容器的有自己的进程树,所以pid与宿主机隔离,但是仍可以发现容器内运行的进程,也在宿主机的进程表中

Kube (官网 http://kubernetes.io)

安装方式

  • kubeadm
  • Minikube
  • 云服务器

工作流程

xxx

Pod

基础命令

kubectl create -f xxx.yaml # 根据yaml安装pod、service..
kubectl get pods # 获取pod信息,加 -o wide 获取更多信息
kubectl delete pod pod-name # 删除pod, 加上 -all 既删除当前空间下所有pod
kubectl port-forward pod-name local-port:pod-port # 端口转发,如此可以通过访问本地端口来访问pod

使用 label 管理 pod

  • 命令
    kubectl label po kubia-manual-v2 creation_method=manual [--overwrite] # 添加标签,如果覆盖要加overwrite
    kubectl get po -l app=nginx # 找label KV 一样的pod
    kubectl get po -l '!env' # 找 label没有env的pod
    kubectl get po -L app # 显示标签 app 在每个pod后面
    kubectl delete po -l k=v # 删除所有符合的label的pod
    
  • 功能
    • 可以为pod配置nodeSelector,来确定pod应该被分配到哪个node。 node具有某些特别的label,如ssd=true…

pod的注解

  • 作用: 用来给pod做说明
  • 命令
    kubectl annotate pod kubia-manual-v2 my.com/someannotation="foo bar" # 添加注解,使用特别前缀,以防被系统自带的注解覆盖
    kubectl describe pod kubia-manual-v2 | grep Annotation # 查看注解
    

命名空间

  • 作用:用来环境隔离,但是不一定隔离网络,既空间A的Apod可以访问空间B的Bpod,这个取决于网络策略。
  • 命令
    kubectl get ns #获取命名空间信息
    kubectl get po -n kube-system # 获取命名空间的所有pod
    kubectl create namespace custom-namespace #创建一个命名空间,也可以用yaml文件创建
    kubectl create -f kubia-manual-with-labels.yaml -n custom-namespace # 在某个命名空间种创建资源
    kubectl delete ns custom-namespace # 删除命名空间,同时会删除空间下的所有pod
    kubectl delete all -all # 删除空间下所有资源
    

Q&A

  • 为何推荐一个容器只有一个进程? 因为这样管理容器时只要专注于一件事情,减少复杂度
  • 扩容后为何不会端口冲突? 因为每个pod的ip都不一样,

金丝雀发布: 先让一部分用户先体验新功能,在让其他用户也使用。

到此为前三章结束。

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

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

相关文章

m基于Matlab的fir和iir数字滤波器的设计与仿真

目录 1.算法概述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法概述 MATLAB系统供了许多工具箱(Toolbox),借助于信号处理工具箱(signal processing)中的freqz_m,remez等函数&#xff0…

软件测试 | 测试工程师都能看懂的redis,进阶测试开发工程师......

目录:导读前言一、Redis是什么?为啥性能好?二、数据类型?常见的命令?1、String 字符串类型2、Hash 数据类型3、List 链表数据4、Set 无序集合类型5、Zset 有序集合类型三、有几种持久化方式?优缺点?四、数…

Flink-输出算子(Sink)使用

5.5 输出算子 5.5.1 概述 print也是一种输出类PrintSinkFunction 创建了一个PrintSinkFunction操作,然后调用addSink方法的作为传入参数 PrintSinkFunction这个类继承自RichSinkFunction富函数类 RichSourceFunction类 继承了AbstractRichFunction富函数类 …

springboot2整合开发流程示例

1.整体开发逻辑 初始配置示例 开发文件示例 2.开发过程问题 ①默认配置路径 thymeleaf默认解析静态资源路径为 /templates/** ②mybatisplus核心工作原理 mapper继承的BaseMapper中声明了CRUD操作service接口继承的IService接口中抽象方法简单封装了CRUD操作 传入了类&a…

Win10系统如何安装配置maven

【原文链接】Win10系统如何安装配置maven (1)若未装jdk,可先参考 Win10系统下载安装配置JDK1.8 安装jdk8 (2)从 maven下载地址 ,下载maven,如下,可以下载最新版本,也可…

【JVM】JVM详解

目录一.JVM概述1.jvm简介2.jvm作用3.jvm的内存模型二.类加载器1.类加载器的作用2.加载器的类型3.双亲委派机制的运行过程(面试题)三.JVM内存模块1.方法区2.堆3.栈(虚拟机栈)4.栈(本地方法栈)5.OutOfMemoryError内存溢出和StackOverFlowError栈溢出及解决方法(面试题)(1).OutOfM…

利用ogg微服务版将oracle同步到kafka

ogg微服务版可以再界面上配置抽取、复制进程,不必进入到shell中进行配置,并且图形化界面可以看到更多信息。 系统架构 源端安装ogg for oracle 19C , 目标端安装ogg for bigdata 21C kafka 2.2 数据库:19C 所有软件安装在同台服务器上&#…

操作系统4小时速成:文件管理,文件结构,属性,基本操作,逻辑有无结构,目录结构,文件系统

操作系统4小时速成:文件管理,文件结构,属性,基本操作,逻辑有无结构,目录结构,文件系统 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能…

2397. 被列覆盖的最多行数-深度优先枚举+二进制检索

2397. 被列覆盖的最多行数-深度优先枚举二进制检索 给你一个下标从 0 开始的 m x n 二进制矩阵 mat 和一个整数 cols ,表示你需要选出的列数。 如果一行中,所有的 1 都被你选中的列所覆盖,那么我们称这一行 被覆盖 了。 请你返回在选择 co…

Spring Security内部工作原理

定义 Spring 安全性是 Spring提供的一个框架,有助于自定义访问和身份验证过程。它在保护应用程序方面起着非常关键的作用。 Spring 安全性,主要侧重于身份验证和授权,为 Java 应用程序提供所有好处。它非常有用,并提供了一种在实…

抑制细胞代谢紊乱的抑制剂

作者团队发现,缺乏 CD4 T 细胞能保护小鼠免受应激诱导的焦虑样行为,物理应激诱导的白三烯 B4 (LTB4) 触发 CD4 T 细胞中的严重线粒体裂变,进而导致各种行为异常,包括焦虑,抑郁和社交障碍。代谢组和单细胞转录组学显示…

Android App实战项目之实现手写签名APP功能(附源码,简单易懂 可直接实用)

运行有问题或需要源码请点赞关注收藏后评论区留言~~~ 一、跟踪滑动轨迹实现手写签名 手写签名的原理是把手机屏幕当作画板,把用户手指当作画笔,手指在屏幕上划来划去,屏幕就会显示手指的移动轨迹,就像画笔在画板上写字一样&#…

安装free IPA与CDH6.3.2结合

主机名之类的应该在cdh安装的时候就配好了 不再赘述 安装freeipa yum -y install nscd 修改 enable-cache netgroup no enable-cache group no enable-cache passwd no 云主机默认不开启IPv6,根据提…

小 A 的卡牌游戏(Gym - 103186B)

题 小A最近沉迷于-款名为Hearthverse的卡牌游戏。在这款游戏中,卡被分为了三个种类(随从、法术和魔法阵),在组卡时,这款游戏严格规定了卡组中每种卡牌的数量,具体来说,-副n张卡的卡组需要包含恰好a张随从卡&#xff0…

Tdengine技术实践

1. 什么是时序数据库? 时序数据库全称为时间序列数据库。 即时间序列数据,按时间维度顺序记录且索引的数据。 时间序列数据主要由 电力行业、化工行业、气象行业、地理信息 等各类型实时监测、检查与分析设备所采集、产生的数据,这些工业数…

配置Maven环境

Maven官网 Maven所有发行版本 一、windows配置maven环境 想要使用maven就必须要有JDK JDK安装 百度网盘下载(二进制文件,一直点下去) 链接:https://pan.baidu.com/s/1y1AutzJeQGdNHa2ml_bk8w 提取码:scyc验证JDK是…

【Java八股文总结】之Java基础

写在前面: 整份Java八股文的整理贯穿我的整个秋招,希望可以给大家带来帮助,如果对你有一定的作用,欢迎大家转发点赞,谢谢!在复习Java八股文的过程中,有两位老哥的博文对我帮助比较大&#xff0c…

力扣(LeetCode)10. 正则表达式匹配(C++)

动态规划 基于闫式dp分析法。 综上 , f[i][j]{f[i−1][j−1]&&(s[i]p[j]∣∣′.′p[j])if p[j]≠∗f[i][j−2]∣∣(f[i−1][j]&&(s[i]p[j−1]∣∣′.′p[j−1])if p[j]∗f[i][j] \begin {cases} f[i-1][j-1] ~~\&\& ~~(s[i]p[j] ~||~ .p[j])&…

鲁棒局部均值分解 (RLMD)附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

安卓手机丢了,危险了!意外的7万美元的谷歌Pixel绕过锁屏

我发现了一个影响似乎所有谷歌Pixel手机的漏洞,如果你把任何锁定的Pixel设备给我,我可以把它解锁还给你。这个漏洞刚刚在2022年11月5日的安全更新中得到修复。 该问题允许有物理权限的攻击者绕过锁屏保护(指纹、PIN等)&#xff0c…