Kubernetes
文章平均质量分 73
Yuan_sr
这个作者很懒,什么都没留下…
展开
-
kubespray部署kubernetes(containerd + cilium)
【代码】kubespray部署kubernetes(containerd + cilium)原创 2023-07-08 21:53:38 · 561 阅读 · 0 评论 -
搭建一个1.27+版本的k8s集群(containerd)
【代码】搭建一个1.27+版本的k8s集群(containerd)原创 2023-07-01 23:47:32 · 583 阅读 · 0 评论 -
Kubernetes审计版本如何确定?
Kubernetes审计版本如何确定原创 2022-09-13 17:21:09 · 364 阅读 · 0 评论 -
iperf打流测试
iperf 打流测试原创 2022-09-11 01:01:27 · 1977 阅读 · 0 评论 -
基于权限控制的Kubernetes容器远程连接方法
Kubernetes websocket 访问集群容器pod远程shell原创 2022-09-11 00:15:49 · 1888 阅读 · 0 评论 -
Kubernetes容器网络及网络模型
1、Docker 网络模型在讨论Kubernetes网络之前,让我们先来看一下Docker网络。Docker采用插件化的网络模式,默认提供bridge、host、none、overlay、maclan和Network plugins这几种网络模式,运行容器时可以通过–network参数设置具体使用那一种模式。bridge:这是Docker默认的网络驱动,此模式会为每一个容器分配Network Namespace和设置IP等,并将容器连接到一个虚拟网桥上。如果未指定网络驱动,这默认使用此驱动。host原创 2021-11-18 20:32:39 · 1674 阅读 · 0 评论 -
Kubernetes通过containerd访问registry的30443端口
问题描述由于Kubernetes默认情况下只开放30000-32767这些端口,但是docker-registry在部署在Kubernetes中的时候conrainerd访问就会出现端口不匹配的问题,主要原因是containerd默认情况下HTTPS方式的访问端口为443,但是按照Kubernetes默认的设置,docker-registry在部署的时候对外暴露的端口在30000-32767之间,因此要么修改Kubernetes默认的端口开启443端口,要么让containerd在访问HTTPS的默认端.原创 2021-07-30 13:47:49 · 956 阅读 · 0 评论 -
Kubernetes客户端client-go简介
介绍Kubernetes 官方从 2016 年 8 月份开始,将 Kubernetes 资源操作相关的核心源码抽取出来,独立出来一个项目 client-go,Kubernetes中使用client-go作为Go语言的官方编程式交互客户端库,提供对api server服务的交互访问。对于k8s的二次开发,熟练掌握client-go是十分必要的。源码地址:https://hub.fastgit.org/kubernetes/client-go.git项目目录解析.├── applyconfigurat原创 2021-06-25 15:04:40 · 1429 阅读 · 0 评论 -
Kubernetes二次开发--Operator的使用
Operator是一个感知应用状态的控制器Operator是使用CRD实现的定制化Controller,它与K8s内建的Controller遵循同样的运行模式1.安装Operatorgit clone https://github.com/operator-framework/operator-sdk.gitmake dep&make install operator-sdk version2.Operator开发流程3.开发准备git clone https://github.原创 2021-05-31 23:51:13 · 895 阅读 · 0 评论 -
Kubernetes中部署Docker registry2.7.1并通过containerd实现拉取镜像到应用Pod的部署
这里主要介绍一下私有仓库(HTTPS)在Kubernetes中部署的问题,由于Kubernetes将弃用docker,因此这里主要介绍以下使用containerd替换docker后如何从私有仓库拉取镜像并完成镜像的部署。下载registry2.7.1的镜像文件说明:在使用registry2.3.1的话会有一个严重的问题,问题就是在yaml或者在命令行通过ctr和crictl命令拉取镜像时携带的sha256值和私有仓库中镜像存储的实际sha256不一致,因此会报找不到镜像的问题:not found: no原创 2021-05-21 23:21:44 · 861 阅读 · 0 评论 -
Kubernetes实用技巧
kubectl命令太多太长记不住?查看资源缩写kubectl describe 回车配置kubectl自动补全命令source < (kubectl completion bash)kubectl写yaml太累,找样例太麻烦?用run命令生成kubectl run --image=nginx my-deploy -o yaml --dry-run > my-deploy.yaml用get命令导出kubectl get statefulset/foo..原创 2021-05-20 23:10:08 · 102 阅读 · 0 评论 -
Kubernetes安全之鉴权
Authorization上面认证过程,只是确认通信的双方都确认了对方是可信的,可以相互通信。而鉴权是确定请求方有哪些资源的权限。API Server目前支持以下几种授权策略(通过API Server的启动参数“–authorization-mode”设置)AlwaysDeny:表示拒绝所有的请求,一般用于测试AlwaysAllow:允许接收所有请求,如果集群不需要授权流程,则可以采用该策略ABAC(Attribute-Based Access Control):基于属性的访问控制,表示使用用户配原创 2021-05-19 23:48:02 · 310 阅读 · 0 评论 -
Kubernetes安全之认证
机制说明Kubernetes作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。API Server是集群内部各个组件通信的中介,也是外部控制的入口。所以Kubernetes的安全机制基本就是围绕保护API Server来设计的。Kubernetes使用了认证(Authentication)、鉴权(Authorization)、准入控制(AdmissionControl)三步来保证API Server的安全AuthenticationHTTP Token认证:通过一个Token来识别原创 2021-05-19 23:46:21 · 229 阅读 · 0 评论 -
Kubernetes存储之PV-PVC
概念PersistentVolume(PV)是由管理员设置的存储,它是群集的一部分。就像节点是集群中的资源一样,PV也是集群中的资源。PV是Volume之类的卷插件,但具有独立于使用PV的Pod的生命周期。此API对象包含存储实现的细节,即NFS、iSCSI或特定于云供应商的存储系统PersistentVolumeClaim(PVC)是用户存储的请求。它与Pod相似。Pod消耗节点资源,PVC消耗PV资源。Pod可以请求特定级别的资源(CPU和内存)。声明可以请求特定的大小和访问模式(例如,可以以读原创 2021-05-18 23:46:02 · 93 阅读 · 0 评论 -
Kubernetes存储之volume
容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题,首先,当容器崩溃时,kubelet会重启它,但是容器的文件将丢失—容器以干净的状态(镜像最初的状态)重新启动,其次,在pod 中同时运行多个容器是,这些容器之间通常需要共享文件,Kubernetes中的volume 抽象就很好的解决了这些问题。背景Kubernetes中的卷有明确的寿命–与封装它的Pod相同,所以,卷的生命比Pod中所有容器都长,当这个容器重启时数据任然得以保存,当然,当Pod不存在时,卷也将不复存在,也许原创 2021-05-17 23:40:15 · 83 阅读 · 0 评论 -
Kubernetes存储之Secret
Secret解决了密码、token、密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者Pod Spec中,Secret可以以Volume或者环境变量的方式使用Secret有三种类型:Service Account: 用来访问Kubernetes API,有Kubernetes自动创建,并且会自动挂载到Pod的/run/secrets/kubernetes.io/serviceaccount 目录中Opaque:base64编码格式的Secret,用来存储密码、密钥等kubernetes原创 2021-05-16 21:08:41 · 73 阅读 · 0 评论 -
Kubernetes存储之ConfigMap
ConfigMap功能在Kubernetes1.2版本中引入,许多应用程序会从配置文件,命令行参数或环境变量中读取配置信息,ConfigMap API给我们提供了向容器中注入配置信息的机制,ConfigMap可以被用来保存单个属性,也可以用来保存整个配置文件或者JSON二进制对象ConfigMap的创建1.使用目录创建$ ls docs/user-guide/configmap/kubectl/game.propertiesui.properties$ cat docs/user-guide/原创 2021-05-16 21:03:43 · 96 阅读 · 0 评论 -
Kubernetes中Service的种类
Service的概念Kubernetes Service定义了这样一种抽象:一个Pod的逻辑分组,一种可以访问它们的策略–通常称为微服务,这一组Pod能够被Service访问到,通常是通过Label SelectorService能够提供负载均衡能力,但是在使用上有以下限制:只提供4层负载能力,而没有7层功能,但是有时我们可能需要更多的匹配规则来转发请求,这点来说4层负载均衡时不支持的Service的类型Service的四种类型:ClusterIP:默认类型,自动分配一个仅Cluster内原创 2021-05-16 20:59:28 · 1067 阅读 · 0 评论 -
Kubernetes的控制器类型即使用案例
什么是控制器Kubernetes中内建了很多的controller(控制器),这些控制器相当于一个状态机,用来控制Pod的具体状态和行为控制器的类型ReplicationController和ReplicaSetReplicationController(RC)用来确保容器应用的副本数始终维持在用户定义的副本数,即如果有容器异常退出,会自动创建新的Pod来替代,而如果异常多出来的容器也会自动回收。在新版本的Kubernetes中建议使用ReplicaSet来取代ReplicationControl原创 2021-05-15 23:57:56 · 97 阅读 · 0 评论 -
Kubernetes中Pod的生命周期
Pod生命周期之Init容器Init容器Pod能够具有多个容器,应用运行在容器里面,但是它可能有一个或多个先于应用容器启动的Init容器Init容器于普通的容器非常像,除了如下两点:Init容器总是运行到成功完成为止每个Init容器都必须在下一个Init容器启动之前成功完成如果Pod 的Init容器失败,Kubernetes会不断地重启该Pod,直到Init容器成功为止,然而,如果Pod对应的restartPolicy为Nerver,它不会重新启动因为Init容器具有与应用程序容器分离的单原创 2021-05-15 23:53:56 · 145 阅读 · 0 评论 -
kubenetes中YAML的字段解释
基本语法缩进时不允许使用Tab键,只允许使用空格缩进的空格数目不重要,只要相同层级的元素左侧对齐即可标识注释,从这个字符一直到行尾,都会被解释器忽略必须存在的属性参数名字段类型说明versionStringK8s API的版本,目前基本都为v1,可以使用kubectl api-version命令查看kindString定义的资源类型和角色:比如:PodmetadataObject元数据对象,福鼎值就写metadatametadata.name原创 2021-05-14 23:53:45 · 99 阅读 · 0 评论