
Kubernetes
文章平均质量分 51
Kubernetes
调试大师
10年java开发经验项目经验,精通java、springboot、vue等bs软件开发、Android、微信小程序移动端开发、wpf桌面应用开发及Hadoop、k8s大数据及虚拟化平台。
展开
-
(二十四)Kubernetes系列之Helm3
Helm为kubernetes的包管理工具,就像Linux下的包管理器(yum/apt等),可以很方便的将之前打包好的yaml文件部署到kubernetes上。1.安装访问地址:https://github.com/helm/helm/releases。3.移动到/usr/local/bin/点击查看最新的版本,并复制url。5.添加公用CHART仓库。6.1安装镜像源并更新。原创 2024-01-22 23:09:06 · 811 阅读 · 0 评论 -
(二十三)Kubernetes系列之prometheus+grafana安装
2.修改manifests/prometheusAdapter-deployment.yaml的prometheus-adapter:v0.9.1镜像。1.修改manifests/kubeStateMetrics-deployment.yaml的kube-state-metrics:2.5.0镜像。访问地址:https://github.com/prometheus-operator/kube-prometheus/releases。默认已经添加了prometheus数据源,直接选择,点击import。原创 2024-01-21 15:51:01 · 679 阅读 · 0 评论 -
(二十二)Kubernetes系列之dashboard
修改service模板,新增type:NodePot和nodePort:30443。7.复制上一步获取的token到dashboard登陆页点击登陆按钮。6. 创建访问账户、获取登陆token。5.访问路径查看是否部署成功。4.查看service。3.查看pod和服务。原创 2024-01-20 19:54:42 · 686 阅读 · 0 评论 -
(二十一)Kubernetes系列之计算资源
如果容器在运行过程中使用的内存超过了内存的limit,它将会被终止。如果容器在运行过程中使用的内存超过了内存的request,则当Node内存不足时,它所在的Pod会被删除,但容器运行过程中如果使用了超过要求CPU,容器并不会被杀死。Kubernetes在创建一个Pod时,调度器将会为Pod选择一个运行的Node。spec.containers[].resources.limits.memory:值会被转化为整数,在docker run命令中作为–memory字段的值。3.查看创建的pod。原创 2024-01-19 20:11:51 · 395 阅读 · 0 评论 -
(二十)Kubernetes系列之存储(网络存储卷(StorageClass))
通过手动创建固定大小的方式创建pv有很多的限制,和开发人员创建的pvc需求资源匹配的上,为了解决这个问题可以通过使用StorageClass来动态PV。说明:provisioner:NFS提供的分配器,字段的值是:fuseim.pri/ifs,1.6.1创建pvc模板指定StorageClass。1.5使用模板创建StorageClass。1.4创建StorageClass模板。1.3.2使用模板创建操作权限。1.2.根据模板创建存储插件。查看storageclass。1.1.创建存储插件模板。原创 2024-01-18 22:32:53 · 519 阅读 · 0 评论 -
(十九)Kubernetes系列之存储(持久卷(PV、PVC))
网络存储卷支持多种存储系统,每种存储系统的配置有各不相同,为了屏蔽底层存储实现的细节,让用户方便使用及管理员方便管理,Kubernetes提引入了PersistentVolume(PV)、PersistentVolumeClaim和StorageClass(PVC)3种资源对象。persistentVolumeReclaimPolicy:删除PVC时,PV资源的回收策略,包含Recycle(自动回收)、Delete(自动删除)、Retain(保留)三种。spec:资源对象的设置参数。原创 2024-01-17 20:33:24 · 428 阅读 · 0 评论 -
(十八)Kubernetes系列之存储(网络存储卷)
通过上一篇文章我们已经搭建好nfs服务器。在这一篇我们将通过创建deployment指定pod挂载上我们创建nfs存储卷、2.使用上一步模板创建deployment。进入另一个pod的容器中使用ls命令查看。1.创建deployment模板文件。5.查看挂载的nfs目录。3.查看创建的pod。原创 2024-01-16 21:31:28 · 692 阅读 · 0 评论 -
(十七)Kubernetes系列之存储(网络存储卷-搭建nfs服务器)
1.由于Kubernetes是分布式容器集群,pod多个副本可能位于不同的node上,这种情况下使用本地存储就无法实现pod直接的文件共享了。因此kubenetes引入网络存储卷使集群中计算机通过TCP/IP网络的方式共享资源,解决不同node节点上的pod多副本资源共享。*:表示不限制访问网段,如果设置网段则表示限制网段,例如:192.168.100.0/24。/usr/local/data/nfs:nfs共享的目录,这里设置需要和上一步一致。mount -t nfs 服务端IP:共享目录 /mnt/原创 2024-01-15 22:11:17 · 806 阅读 · 0 评论 -
(十六)Kubernetes系列之存储(本地存储卷)
和pod有相同的周期,同一个pod中多个容器可同时挂载,在Pod被调度到Node时进行创建,初始化时为空目录,pod销毁时node相应目录也会被删除。FileOrCreate:挂载文件有上层目录不会自动创建,如果上层目录不存在则pod启动失败。本地存储卷类型分为:EmptyDir、HostPath:Node、Local类型。DirectoryOrCreate:目录不存在则创建。将Node文件系统的目录或文件挂载到容器内部使用。1.2根据模板创建deployment。2.2创建deployment。原创 2024-01-15 22:10:28 · 558 阅读 · 0 评论 -
(十五)Kubernetes系列之存储(配置存储-Downward API)
2.3.1查看deployment创建的pod。1.2.根据模板创建deployment。2.2根据模板创建deployment。1.3.2查看容器输出。1.3.1查看pod。原创 2024-01-14 12:30:02 · 369 阅读 · 0 评论 -
(十四)Kubernetes系列之存储(配置存储-Secret)
Secret是使用base64对数据进行加密配置信息。1.5.3创建deployment创建的pod。1.4.2根据上一步模板执行创建secret。1.3基于1.2 的模板创建secret。1.4 secret应用(环境变量方式)1.5 secret应用(存储卷方式)说明:以上命令不会显示键值对的明文。1.5.2 使用上一步模板创建资源。1.1获取base64值。1.5.4进入pod容器。注意:这里获取到的是明文。1.3查看secret。原创 2024-01-14 12:29:07 · 358 阅读 · 0 评论 -
(十三)Kubernetes系列之存储(配置存储-ConfigMap)
k8s对容器应用所需的存储资源抽象为Volume(存储卷),Volume独立于容器和pod进行绑定。k8s中的存储卷主要有配置存储类型、本地存储类型、持久化存储(PV)类型、网络共享存储类型等.1.2.1.1.在创建deployment的模板中加入引用。1.2.2.3创建deployment创建的pod。1.2.2.1在deployment模板中引用。1.2.1.2执行创建deployment。主要用于像各个pod内的容器注入配置信息。1.2.2.2创建deployment。1.2.2存储卷的引用方式。原创 2024-01-13 22:11:19 · 400 阅读 · 0 评论 -
(十二)Kubernetes系列之标签
标签加在对象上对他们进行标识或分类,比如可以使用标签对开发环境、测试环境、生产环境进行区分,并使用标签选择器选择指定标签值的资源。每种资源对象都可以设置标签。一个对象可以设置多标签,对于一个对象一个键只能对应一个值。kubectl label [资源对象类型] [资源对象名称] [标签名]=[标签值]-1.标签设置标签的设置有两种方式一种是命令方式,另一种是在创建资源对象时在模板指定标签。kubectl label [资源对象类型] [资源对象名称] [标签名]=[标签值]1.2创建资源对象时指定标签。原创 2024-01-13 20:39:04 · 479 阅读 · 1 评论 -
(十一)Kubernetes系列之命名空间
执行命令发现无法查到刚刚部署的deployment,这是因为执行kubectl get deployment会在default命名空间查看。kubectl get deployment --namespace mfc或者kubectl get deployment -n mfc。命名空间的创建有两种方式,一种是通过命令,另一种是通过模板文件创建。2.1创建deployment指定命名空间为mfc。2.1.2使用上步模板创建deployment。1.2.2使用模板创建命名空间。1.命名空间的创建建。原创 2024-01-13 17:05:53 · 509 阅读 · 1 评论 -
(七)Kubernetes系列之DaemonSet控制器
DaemonSet控制器仅会集群中的各个节点上运行单一的Pod副本。metadata表示该资源对象的元数据。一个资源对象可拥有多个元数据,资源对象的name项,表示当前资源的命名。selector/matchLabels:表示一个或多个自定义标签(label),其形式为键值对。1.2 执行命令使用1.1的模板创建DaemonSet。containerPort:暴露的端口。hostPort:映射到宿主机的端口。spec表示该资源对象的具体设置。1.3查看daemonset状态。kind表示要创建的资源对象。原创 2024-01-13 17:02:37 · 385 阅读 · 1 评论 -
(十)Kubernetes系列之Ingress
1.2.1修改: registry.k8s.io/ingress-nginx/controller:v1.4.0@sha256:34ee929b111ffc7aa426ffd409af44da48e5a0eea1eb2207994d9e0c0882d143为:registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.4.0。2.1.2 执行创建deployment命令。3.1.4 使用集群外机器访问。原创 2024-01-13 15:08:43 · 1110 阅读 · 1 评论 -
(九)Kubernetes系列之Service
这样其他服务就无法正确找到pod了,k8s通过定义service一般使用标签选择器选择pod,对pod进行在逻辑上分组,对整个分组定义访问策略,这一组pod可以被service访问。基于ClusterIP生成的ClusterIP,把这个IP地址及端口映射到master和各个node上,集群外的机器可以使用master或node的ip+端口访问服务。默认的服务,为service分配一个集群内部可以访问的固定虚拟IP(ClusterIP),仅可集群内的机器和集群中的pod可以使用。原创 2024-01-13 15:06:34 · 408 阅读 · 1 评论 -
(八)Kubernetes系列之Job、CronJob控制器
(1)修改kube-scheduler.yaml、kubeapiserver.yaml、kube-controller- manager.yaml在spec部分加。(2)在创建job模板中的spec下增加属性 ttlSecondsAfterFinished指定执行结束后等待多少秒才可删除Job。修改1.1.1模板增加并发数spec.parallelism和总任务的执行次数spec.completions。1.1.2执行执行命令使用1.1.1的模板创建job一次性任务。DURATION:Job的执行时间。原创 2024-01-13 13:37:49 · 395 阅读 · 0 评论 -
(六)Kubernetes系列之Deployment控制器
但在实际的应用中,你希望你的部署能自动保持运行,并且保持健康,不需要任何的手动干预。所以你几乎不会直接创建pod,而是创建ReplicationController或Deployment这样的资源控制器来创建并管理实际的pod。如果Pod或主机出现故障,则会自动启用新的Pod进行补充,以保证在集群中部署的Pod数与配置中的Pod数保持一致。注意:一定要带参数--record,这样会把每次修改Deployment控制器时所使用的命令记录到备注字段中,Recreate:创建新的Pod之前终止所有现有的Pod。原创 2024-01-13 13:24:04 · 967 阅读 · 1 评论 -
(五)Kubernetes系列建pod
Pod是Kubernetes中的基本单位,通常有一个或者多个关联密切的容器构成。pod中的容器共享环境、存储卷和IP空间,拥有相同的生命周期。一个资源对象可拥有多个元数据,metadata中的name项表示当前资源的名称。该命令可查看资源的基本信息、容器信息、准备情况、存储卷信息及相关的事件列表,部署遇到问题时可使用该命令查看详细信息。kubectl replace -f [模板名称] --force。kind表示要创建的资源对象,这里是创建pod对象。kubectl get pod [名称] -w。原创 2024-01-13 13:21:43 · 385 阅读 · 1 评论 -
(四)Kubernetes系列之搭建Kubernetes安装
安装过程中如果有任何问题,请仔细看清楚 kube init 之后的命令输出,另外就是查看 kubelet 以及 containerd 这两个服务的日志,下面是可能会用到的排查命令。Kubernetes在v1.24版本之后删除了dockershim,Docker不再是默认的容器运行时了,要想继续使用Docker运行时,需要安装cri-dockerd。1.切换清华镜像站并更新数据源列表。5.安装cri-dockerd。3.安装docker。3.2配置GPG密钥。4.开启IPv4转发。原创 2024-01-13 11:51:16 · 484 阅读 · 1 评论 -
(三)Kubernetes系列之virtualbox复制虚拟机和网络配置
选择手动配置网卡,设置ipv4地址和你创建的linux 虚拟机host-only网卡在同一地址段的ip,选择dhcp,输入相同段服务器地址,在段内设置最小、最大地址。选中虚拟机右键选择属性,在弹出框中选择网络,点击网卡1TAB页面,勾选启用网络连接,设置连接方式为:仅主机(Host- Only)网络,点击ok按钮。选中虚拟机右键选择属性,在弹出框中选择网络,点击网卡2TAB页面,勾选启用网络连接,设置连接方式为:网络地址转换(NAT),点击ok按钮。1.3设置副本类型,选则完全复制,点击【复制按钮】原创 2024-01-13 11:49:04 · 586 阅读 · 1 评论 -
(二)Kubernetes系列之virtualbox下安装ubuntu
选择存储,控制器IDE后的虚拟光盘选择图标,弹出虚拟光盘选择对话框,点击注册按钮选择要按钮的Ubuntu系统文件,然后点击选择按钮,然后点击ok按钮。3.1打开virtualbox,点击菜单栏的控制,在下拉菜单中选择新建。点击设置按钮,选择系统-》处理器,设置处理器数量为4点击0k按钮。3.2输入名称,设置文件夹选择类型和版本后点击下一步。设置openssh server,点击回车开始安装。默认即可,点创建按钮,即可完成虚拟机创建。选择Ubuntu server,按回车。选择动态分配大小,点击下一步按钮。原创 2024-01-13 11:30:06 · 466 阅读 · 0 评论 -
(一)Kubernetes系列开篇
无法做到资源按需分配,比如有的组件是计算密集型需要占用大量cpu资源、有的是io密集型需要占用的内存、磁盘和网络资源要大于cpu资源,或者有的组件访问量比较大需要多负载,有的组件则访问量比较小,单体应用只能整体部署造成资源浪费。是google内部使用的大规模集群管理系统的Borg的开源版本。Kubernetes平台对现有的语言或平台没有侵入性,现有系统可以很容易的迁移到kubernets平台,Kubernetes没有限定任何编程接口,任何语言编写的服务,都可以映射为Kubernetes的Service。原创 2024-01-13 11:29:14 · 338 阅读 · 0 评论