ServiceAccount ServiceAccount是给运行在Pod的程序使用的身份认证,Pod容器的进程需要访问API Server时用的就是ServiceAccount账户. ServiceAccount仅局限它所在的namespace,每个namespace创建时都会自动创建一个default service account. 创建Pod时,如果没有指定Service Account,Pod则会使用default Service Account. 通过以下命令可以查看我们前面创建ch…
emptyDir临时卷 有些应用程序需要额外的存储,但并不关心数据在重启后仍然可用. 例如,缓存服务经常受限于内存大小,将不常用的数据转移到比内存慢.但对总体性能的影响很小的存储中. 再例如,有些应用程序需要以文件形式注入的只读数据,比如配置数据或密钥. 临时卷就是为此类用例设计的.因为卷会遵从 Pod 的生命周期,与 Pod 一起创建和删除, 所以停止和重新启动 Pod 时,不会受持久卷在何处可用的限制. 下面我们就通过一个临时卷,让一个pod中的两个容器实现文件共享. apiVersion:…
上篇我们已经安装好k8s1.23集群,现在我们开始使用k8s部署我们的项目 Pod Pod 是一组容器集合,是可以在 Kubernetes 中创建和管理的.最小的可部署的计算单元.这些容器共享存储.网络. 准备Demo 我们要实现多容器Pod所以准备两个WebAPI项目 新建一个webapi,命名为oneapi,里面新增TestController,新增两个api,一个是返回当前pod的ip,另一个是模拟高cpu操作 [ApiController] [Route("[controller]&qu…
上一篇我们通过deployment实现了pod的横向扩展,但是仍然不能负载,也不能对外提供服务,现在我们来看看如何通过k8s实现负载与外网访问 Service service为一组pod提供一个统一的入口,实现负载,也可实现外部访问. 原理  在Kubernetes集群的每个Node上都会运行一个kube-proxy服务进程,kube-proxy会通过我们定义的service,自动生成iptables规则,这样就能将到某个Service的访问请求转发到后端的多个Pod实例上. Service类型…
什么是HPA https://kubernetes.io/zh/docs/tasks/run-application/horizontal-pod-autoscale/ 我们前面有通过kubectl scale命令手动扩展我们的服务,生产环境中我们希望k8s能够根据一些指标信息自动扩展服务. 这时我们可以利用k8s的HPA(水平扩展)来根据 CPU利用率等指标自动扩缩Deployment.ReplicaSet 或 StatefulSet 中的 Pod 数量. HPA原理 HPA控制器通过Metr…
我们前面部署的pod调度取决于kube-scheduler,它会根据自己的算法,集群的状态来选择合适的node部署我们的pod. 下面我们来看下如何来根据我们自己的要求,来影响pod的调度. 定向node调度 有时候我们想将pod调度到某一些node上,比如csharp开发的程序,调度到某一些node,java开发的程序调度到另一些node,这时候我们可以选择定向调度. 定向调度需要用到我们前面说的label,具体做法就是将node打上指定的label,然后在定义pod/deployment的时…
1.基本概念 RBAC(Role-Based Access Control,基于角色的访问控制)在k8s v1.5中引入,在v1.6版本时升级为Beta版本,并成为kubeadm安装方式下的默认选项,相对于其他访问控制方式,新的RBAC具有如下优势: - 对集群中的资源和非资源权限均有完整的覆盖  整个RBAC完全由几个API对象完成,同其他API对象一样,可以用kubectl或API进行操作  可以在运行时进行调整,无需重启API Server 要使用RBAC授权模式,需要在API Serve…
Study From https://jimmysong.io/kubernetes-handbook/practice/using-nfs-for-persistent-storage.html 1. 机器不FQ 所以手工download 了image 来处理. 需要的images docker search nfs-client-provisioner 比较简单的处理方法:docker pull registry.docker-cn.com/jmgao1983/nfs-client-prov…
kubernetes认证,授权概括总结: RBAC简明总结摘要:API Server认证授权过程: subject(主体)----->认证----->授权[action(可做什么)]------>准入控制[Object(能对那些资源对象做操作)] 认证: 有多种方式,比较常用的:token,tls,user/password 账号: k8s中账号的概念不是我们理解的账号,它并不真的存在,它只是形式上存在. 它有两种账号: UserAccount(人使用的账号), ServiceAccou…
volume 我们经常会说:容器和 Pod 是短暂的.其含义是它们的生命周期可能很短,会被频繁地销毁和创建.容器销毁时,保存在容器内部文件系统中的数据都会被清除. 为了持久化保存容器的数据,可以使用 Kubernetes Volume. Volume 的生命周期独立于容器,Pod 中的容器可能被销毁和重建,但 Volume 会被保留. 本质上,Kubernetes Volume 是一个目录,这一点与 Docker Volume 类似.当 Volume 被 mount 到 Pod,Pod 中的所有…