原来的yaml的资源清单为 apiVersion: extensions/v1beta1 kind: ReplicaSet metadata: name: frontend spec: replicas: selector: matchLabels: tier: frontend template: metadata: labels: tier: frontend spec: containers: - name: myapp image: wangyanglinux/myapp:v1 env:…
0x00 Problem [root@k8sm90 demo]# kubectl create -f tomcat-deployment.yaml error: unable to recognize "tomcat-deployment.yaml": no matches for kind "Deployment" in version "extensions/v1beta1" 0x01 Solution 修改 apiVersion 选项: a…
目录 1.glusterfs概述 1.1.glusterfs简介 1.2.glusterfs特点 1.3.glusterfs卷的模式 2.heketi概述 3.部署heketi+glusterfs 3.1.准备工作 3.2.创建glusterfs集群 3.3.创建heketi服务 3.4.创建gfs集群 4.创建storageclass 6.分析k8s通过heketi创建pv及pvc的过程 7.测试数据 8.测试deployment 1.glusterfs概述 1.1.glusterfs简介 g…
在上一篇博客中,我们成功将 Gitlab CI 部署到了 Docker 中去,成功创建了 Gitlab CI Pipline 来执行 CI/CD 任务.那么这篇文章我们更进一步,将它集成到 K8s 集群中去.这个才是我们最终的目标.众所周知,k8s 是目前最火的容器编排项目,很多公司都使用它来构建和管理自己容器集群,可以用来做机器学习训练以及 DevOps 等一系列的事情. 在这里,我们聚焦 CI/CD,针对于 Spring Boot 项目,借助 Gitlab CI 完成流水线的任务配置,最终部…
参考: https://www.cnblogs.com/terrycy/p/10058944.html https://www.cnblogs.com/weiBlog/p/10629966.html 用到的命令和遇到的坑: https://www.cnblogs.com/terrycy/p/10058944.html https://www.cnblogs.com/weiBlog/p/10629966.html monitor-namespace.yaml cluster-role.yaml c…
[root@bs-k8s-ceph ~]# ceph -s cluster: id: 11880418-1a9a-4b55-a353-4b141e2199d8 health: HEALTH_WARN Long heartbeat ping times on back interface seen, longest is 3884.944 msec Long heartbeat ping times on front interface seen, longest is 3888.368 msec…
为什么需要Pod Kubernetes项目之所以这么做的原因: 因为Kubernetes是谷歌公司基于Borg项目做出来的,谷歌工程师发现,他们部署的应用往往存在这进程与进程组的关系.具体说呢,就是这些应用之间有着密切的协作关系,使得他们必须部署在同一台机器上 而如果事先没有组的概念,像这样的运维关系很难处理:举个例子 rsyslogd是由3个进程组成的:一个imklog模块,一个imuxsock模块,一个rsyslogd自己的9函数主进程.这三个进程一定要运行在同一台机器上否则,他们之间基于…
一.Pod控制器及其功用 Pod控制器是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现故障时,会尝试 进行重启,当根据重启策略无效,则会重新新建pod的资源. pod控制器有多种类型: ReplicaSet: 代用户创建指定数量的pod副本数量,确保pod副本数量符合预期状态,并且支持滚动式自动扩容和缩容功能.ReplicaSet主要三个组件组成: (1)用户期望的pod副本数量 (2)标签选择器,判断哪个pod归自己管理 (3)当现存的pod数量不足,会根据pod资…
Docker+K8s基础篇(四) pod控制器 A:pod控制器类型 ReplicaSet控制器 A:ReplicaSet控制器介绍 B:ReplicaSet控制器的使用 Deployment控制器 A:Deployment控制器的介绍和简单使用 DaemonSet控制器 A:Deployment控制器的介绍 B:Deployment控制器的简单使用 C:pod的共享字段介绍 ♣一:Pod控制器 A:Pod控制器类型 通过yaml格式创建的pod资源我们手动delete之后,是不会重建的,因为这…
1.0 k8s 集群状态检查 # 查看集群信息 kubectl cluster-info systemctl status kube-apiserver systemctl status kubelet systemctl status kube-proxy systemctl status kube-scheduler systemctl status kube-controller-manager systemctl status docker # 查看namespaces kubectl…
kubectl概述 祭出一张图,转载至 kubernetes-handbook/kubectl命令概述 ,可以对命令族有个整体的概念. 环境准备 允许master节点部署pod,使用命令如下: kubectl taint nodes --all node-role.kubernetes.io/master- kubectl安装后,默认是没有比如自动补全等功能的,频繁使用比较不方便.目前已经有各类kubectl小 工具 可以提高效率,还有kubectl专用的shell了.个人感觉比较好用有以下这些…
第一章.k8s中的资源 1.什么叫资源? k8s中所有的内容都抽象为资源, 资源实例化之后,叫做对象 2.在k8s中有哪些资源? 工作负载型资源(workload): Pod ReplicaSet Deployment StatefulSet DaemonSet Job CronJob (ReplicationController在v1.11版本被废弃) 服务发现及负载均衡型资源(ServiceDiscovery LoadBalance): Service Ingress, ... 配置与存储型…
打算在跳板机上写一个shell脚本,批量检查远程服务器上的main进程是否在健康运行中. 先找出其中一台远程机器,查看main进程运行情况 [root@two002 tmp]# ps -ef|grep main root 23448 23422 0 11:40 pts/0 00:00:00 grep --color=auto main [root@two002 tmp]# ps -ef|grep main|grep -v grep|wc -l 0 shell检查脚本如下 [root@two002…
目录 一.什么是Ingress? 1.Pod 漂移问题 2.端口管理问题 3.域名分配及动态更新问题 二.如何创建Ingress资源 三.Ingress资源类型 1.单Service资源型Ingress 四.Ingress Nginx部署 1.部署Ingress controller 2.部署后端服务 3.部署ingress-nginx service 4.部署ingress 四.增加tomcat服务 四.构建TLS站点 一.什么是Ingress? 从前面的学习,我们可以了解到Kubernete…
一.概述 1.我们说过,k8s的可用插件有很多,除了flannel之外,还有一个流行的叫做calico的组件,不过calico在很多项目中都会有这个名字被应用,所以他们把自己称为project calico,但是很多时候我们在kubernets的语境中通常会单独称呼他为calico.其本身支持bgp的方式来构建pod网络.通过bgp协议的路由学习能使得去每一节点上生成到达另一节点上pod之间的路由表信息.会在变动时自动执行改变和修改,另外其也支持IP-IP,就是基于IP报文来承载一个IP报文,不…
一.上集回顾 1.Service 3种模型:userspace,iptables,ipvs 2.Service类型 ClusterIP,NodePort NodePort:client -> NodeIP:NodePort -> ClusterIP:ServicePort -> PodIP:containerPort LoadBalancer ExternelName No ClusterIP: Hedless Service serviceName -> PodIP 二.ingr…
k8s中的资源 什么叫资源? k8s中所有的内容都抽象为资源, 资源实例化之后,叫做对象 在k8s中有哪些资源? 工作负载型资源(workload): Pod ReplicaSet Deployment StatefulSet DaemonSet Job CronJob (ReplicationController在v1.11版本被废弃) 服务发现及负载均衡型资源:   ServiceDiscovery LoadBalance  Service Ingress, ... 配置与存储型资源: Vo…
目录 kubectl 常用命令 自动补全 Kubectl命令概览 常用命令分类 常用命令 声明式资源对象管理 查看资源状态 容器管理 集群管理 常用命令英文缩写 kubectl 常用命令 自动补全 使用 bash-completion 实现 # 安装bash-completion yum install -y epel-release.noarch yum install -y bash_completion # 添加补全脚本 kubectl completion bash >/etc/bash…
Ingress 的资源帮助信息介绍 [root@master ~]# kubectl explain ingress KIND: Ingress VERSION: extensions/v1beta1 DESCRIPTION: Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configure…
DaemonSet 顶级参数介绍 [root@master manifests]# kubectl explain ds KIND: DaemonSet VERSION: extensions/v1beta1 DESCRIPTION: DEPRECATED - This group version of DaemonSet is deprecated by apps/v1beta2/DaemonSet. See the release notes for more information. Da…
Deploy 的控制器定义参数介绍 [root@master manifests]# kubectl explain deploy KIND: Deployment VERSION: extensions/v1beta1 DESCRIPTION: DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for more informa…
一.创建方式分类 Kubernetes 支持两种方式创建资源: (1)用 kubectl 命令直接创建,比如: kubectl run httpd-app --image=reg.yunwei.com/learn/httpd:latest --replicas=2 在命令行中通过参数指定资源的属性. (2)通过配置文件和 kubectl apply 创建,要完成前面同样的工作,可执行命令: kubectl apply -f httpd.yaml httpd.yaml 的内容为: apiVersi…
kubectl详解 目录 kubectl详解 一.陈述式管理 1. 陈述式资源管理方法 2. k8s相关信息查看 2.1 查看版本信息 2.2 查看资源对象简写 2.3 查看集群信息 2.4 配置kubectl自动补全 2.5 查看日志 2.6 基本信息查看 2.6.1 查看master节点状态 2.6.2 查看命名空间 2.7 命名空间操作 2.7.1 查看default命名空间的所有资源 2.7.2 创建命名空间app 2.7.3 删除命名空间app 2.8 deployment/pod操作…
总结: 所需要的三个yaml文件的下载地址:https://files.cnblogs.com/files/sanduzxcvbnm/k8s-gitlab.zip Gitlab官方提供了 Helm 的方式在 Kubernetes 集群中来快速安装,但是在使用的过程中发现 Helm 提供的 Chart 包中有很多其他额外的配置,所以我们这里使用自定义的方式来安装,也就是自己来定义一些资源清单文件. Gitlab主要涉及到3个应用:Redis.Postgresql.Gitlab 核心程序,实际上我们…
课程链接:http://video.jessetalk.cn/course/explore 良心课程,大家一起来学习哈! 目录 01-介绍K8s是什么 02-为什么要学习k8s 03-如何学习k8s 04-K8S集群基本概念 05-安装本地k8s单节点集群 06-K8S三大核心组件介绍 07-Service的三种类型及Dashboad部署 08-kubectl工具命令介绍 09-yaml部署文件格式介绍 10-部署netcore api到K8S 11-k8s高可用集群介绍 12-进阶介绍 01-…
一.什么是DaemonSet? DaemonSet 确保全部(或者一些)Node 上运行一个 Pod 的副本.当有 Node 加入集群时,也会为他们新增一个 Pod .当有 Node 从集群移除时,这些 Pod 也会被回收.删除 DaemonSet 将会删除它创建的所有 Pod. 使用 DaemonSet 的一些典型用法: 运行集群存储 daemon,例如在每个 Node 上运行 glusterd.ceph. 在每个 Node 上运行日志收集 daemon,例如fluentd.logstash.…
1. 背景介绍 需求: 针对多种协议SDK构造探针,测试公司接入机服务状况(每一个探针应对单一接入机,接入机数量可能会动态变化). 难点: 大多数协议SDK均不支持多实例运行,且部分SDK通过生成文件保存内部状态;各协议SDK处于迭代状态,不能对其进行魔改. 分析: (1) 基于以上原因,无法选择多线程或者多进程,在单一物理机或容器内完成探针相应功能; (2) 尝试通过Kubernetes部署探针容器,通过容器完成不同协议SDK的进程隔离乃至文件隔离; (3) 通过Deployment设置容器环…
课程链接:http://video.jessetalk.cn/course/explore 良心课程,大家一起来学习哈! 目录 01-介绍K8s是什么 02-为什么要学习k8s 03-如何学习k8s 04-K8S集群基本概念 05-安装本地k8s单节点集群 06-K8S三大核心组件介绍 07-Service的三种类型及Dashboad部署 08-kubectl工具命令介绍 09-yaml部署文件格式介绍 10-部署netcore api到K8S 11-k8s高可用集群介绍 12-进阶介绍 01-…
介绍 volume存储卷是Pod中能够被多个容器访问的共享目录,kubernetes的volume概念,用途和目的与docker的volume比较类似,但两者不能等价,首先,kubernetes中的volume被定义在Pod上,然后被一个Pod里的多个容器挂在到具体的文件目录下:其次,kubenetes中的volume与Pod的生命周期相同,但与容器生命周期不相关,当容器终止或者重启时,volume中的数据也不会丢失,最后Volume支持多种数据类型,比如:GlusterFS,Ceph等吸纳进的…
Pod pod在之前说过,pod是kubernetes集群中是最小的调度单元,pod中可以运行多个容器,而node又可以包含多个pod,关系如下图: 在对pod的用法进行说明之前,有必要先对docker容器进行说明 在使用docker时,可以使用docker run命令创建一个容器,而在kubernetes集群中对长时间运行容器的要求是: 主程序需要一直在前台执行 如果我们创建的docker镜像的启动命令是后台执行程序,例如Linux脚本: nohup ./start.sh & 那么kubele…