K8S之pod生命周期 K8S之pod生命周期Pod的基本概念最小的部署单元一组容器的集合一个Pod中的容器共享网络命名空间和存储卷Pod是短暂的Pod存在的意义Pod为亲密性应用而存在亲密性应用场景:两个应用之间发生文件交互两个应用之间通过lo或socket通信两个应用之间需要频发的调用Pod声明周期Pod的生命周期是通过Replication Controller来管理的。Pod的生命周期过程包括:通过模板进行定义,然后分配到一个Node上运行,在Pod所含容器运行结束后P
K8S之pod生命周期 K8S之pod生命周期Pod的基本概念最小的部署单元一组容器的集合一个Pod中的容器共享网络命名空间和存储卷Pod是短暂的Pod存在的意义Pod为亲密性应用而存在亲密性应用场景:两个应用之间发生文件交互两个应用之间通过lo或socket通信两个应用之间需要频发的调用Pod声明周期Pod的生命周期是通过Replication Controller来管理的。Pod的生命周期过程包括:通过模板进行定义,然后分配到一个Node上运行,在Pod所含容器运行结束后P
K8S之Secret K8S之SecretSecret介绍k8s secrets用于存储和管理一些敏感数据,比如密码,token,密钥等敏感信息。它把 Pod 想要访问的加密数据存放到 Etcd 中。然后用户就可以通过在 Pod 的容器里挂载 Volume 的方式或者环境变量的方式访问到这些 Secret 里保存的信息了。Secret 有三种类型:Service Account :用来访问 Kubernetes API,由 Kubernetes 自动创建,并且会自动挂载到 Pod 的 /run/secrets/kube
K8S之ConfigMap K8S之ConfigMap什么是ConfigMap?ConfigMap是用来存储配置文件的kubernetes资源对象,所有的配置内容都存储在etcd中。创建ConfigMap的方式创建ConfigMap的方式有4种:通过直接在命令行中指定configmap参数创建,即–from-literal,–from-literal可多次使用通过指定文件创建,即将一个配置文件创建为一个ConfigMap-,-from-file=<文件>通过指定目录创建,即将一个目录下的所有配置文
K8S之Scheduler调度器 K8S之Scheduler调度器kubernetes Scheduler 简介kubernetes Scheduler 运行在 master 节点,它的核心功能是监听 apiserver 来获取 PodSpec.NodeName 为空的 pod,然后为每个这样的 pod 创建一个 binding 指示 pod 应该调度到哪个节点上。从哪里读取还没有调度的 pod 呢?当然是 apiserver。怎么知道 pod 没有调度呢?它会向 apiserver 请求 spec.nodeName 字段为空的 po
K8S之Ingress-Nginx K8S之Ingress-NginxIngress诞生背景我们都知道Service的表现形式为IP:Port,工作在TCP/IP层。对于基于HTTP的服务来说,不同的URL地址经常对应到不同的后端服务或者虚拟服务器,这些应用层的转发机制仅通过kubernetes的Service机制是无法实现的。因此就有了Ingress将不同URL的访问请求转发到后端不同的Service,以实现HTTP层的业务路由机制。Ingress 是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTP和HTT
K8S之Service K8S之Service什么 是Service?在kubernetes中,service是一个抽象的概念,一个 Pod 的逻辑分组,一种可以访问它们的策略 , 通常称为微服务。 这一组 Pod 能够被 Service 访问到,通常是通过 Label Selector进行标签选择,选择出具有相同标签属性的pod组成的一个集合,以一个身份为用户提供服务访问。需要注意的是,Pod是处于一个期望值的数量上的,有Pod被不断的销毁,同时也有新的Pod被创建,Pod的数量处于一个动态的平衡当中,维持着期望值的一个状
K8S之控制器类型 K8S之控制器类型什么是控制器Kubernetes 中内建了很多 controller(控制器),这些相当于一个状态机,用来控制 Pod 的具体状态和行为常见的控制类型Pod控制器:又称之为工作负载,由master的kube-contriller-manager组件提供,常见的有:ReplicationControllerReplicaSetDeploymentStatefulsetDaemonsetJobCronjobPod对象的管理通常是有某种控制器的特定对象来实现的,包括其
K8S安装 K8S安装需要注意的是如果没有特殊说明,各个节点都需要步骤操作环境准备1.配置主机名hostnamectl set-hostname master # master节点hostnamectl set-hostname node1 # node1节点hostnamectl set-hostname node2 # node2节点2.配置hosts文件每个节点配置相同vim /etc/hosts10.0.0.138 master m10.0.0.143 node1 n11
K8S之pod生命周期 K8S之pod生命周期Pod的生命周期是通过Replication Controller来管理的。Pod的生命周期过程包括:通过模板进行定义,然后分配到一个Node上运行,在Pod所含容器运行结束后Pod也结束。在整个过程中,Pod处于一下4种状态之一:Pending:Pod定义正确,提交到Master,但其所包含的容器镜像还未完成创建。通常Master对Pod进行调度需要一些时间,之后Node对镜像进行下载也需要一些时间;正在初始化中的Pod处于Pending状态Running:Pod已被分配到某
K8S之命名空间(namespace) K8S之命名空间(namespace)K8s使用命名空间的概念帮助解决集群中在管理对象时的复杂性问题。它是集群中组织和管理对象的一种方式。Kubernetes 支持在一个物理集群上划分多个虚拟集群,这些虚拟集群即 命名空间。介 绍Kubernetes集群可以同时管理大量互不相关的工作负载,而组织通常会选择将不同团队创建的项目部署到共享集群上。随着数量的增加,部署对象常常很快就会变得难以管理,拖慢操作响应速度,并且会增加危险错误出现的概率。Kubernetes使用命名空间的概念帮助解决集群中在管理对
初识K8S之K8S安装 初识K8S之K8S安装需要注意的是如果没有特殊说明,各个节点都需要步骤操作环境准备1.配置主机名hostnamectl set-hostname master # master节点hostnamectl set-hostname node1 # node1节点hostnamectl set-hostname node2 # node2节点2.配置hosts文件每个节点配置相同vim /etc/hosts10.0.0.138 master m10.0.0.143 node
初识K8S 初始K8SKubernetes(k8s)是自动化容器操作的开源平台。这些容器操作包括:部署、调度和节点集群间扩展。K8S的功能自动化容器部署和复制。实时弹性收缩容器规模。容器编排成组,并提供容器间的负载均衡K8S的架构及组件Kubernetes的核心组件:Master节点:集群控制管理节点,所有的命令都经由master通过kubectl命令行管理工具处理。etcd:保存了整个集群的状态(存放配置信息),k/v结构,一旦故障,可能导致整个集群的瘫痪或者数据丢失,它通常是有奇数个集
Harbor仓库使用手册 Harbor仓库使用手册Harbor使用手册https://ivanzz1001.github.io/records/post/docker/2018/04/11/docker-harbor-uageVMware harbor 成员管理https://www.cnblogs.com/shix0909/p/11084386.html
Jenkins构建自动触发器 Jenkins构建自动触发器场景:当代码push到GitLab上之后,自动触发Jenkins的构建操作安装插件需要安装的插件:GitLab和GitLab Hook在插件管理的可选插件安装即可Jenkins设置自动构建我们都可以看到上图有个CUL:http://10.0.0.139:9090/project/AA,这个一会要用然后点击系统管理–>全局配置 做如下操作Gitlab配置webhookGitlab中开启webhook功能使用root账户登录到后台,点击:Admin
Jenkins手动构建出现ERROR Failed to parse POMs Jenkins手动构建出现ERROR: Failed to parse POMs在拉取代码进行构建过程中出现如下错误:ERROR: Failed to parse POMsjava.io.IOException: Cannot run program "java-1.8.0-openjdk-1.8.0.282.b08-1.el7_9.x86_64/bin/java" (in directory "/var/lib/jenkins/workspace/AA"): error=2, No such fil
Docker的安装和基本操作 Docker的安装及各种操作Docker简介Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。容器虚拟化与传统虚拟化传统虚拟化虚拟机(virtual machine)就是带环境安装的一种解决方案。它可以在一种
GitLab代码仓库构建 GitLab代码仓库构建GitLab代码托管仓库最近火,原因是它是DevOps中中要的一环,与Git相比, 除了涵盖Git所有功能, 同时又提供方便的后台管理, 非常适合企业使用, 下面简单介绍下GitLab的搭建, 当然, 官方文档有提供相应的方法, 但实际操作过程中, 并没有那么顺利.安装依赖yum install -y curl policycoreutils openssh-server openssh-clientssystemctl start sshd # sshd服务默认是启动的
Jenkins--CD持续部署 Jenkins–CD持续部署安装Jenkins环境Jenkins是基于java环境的所以先安装JDK安装JDKyum install -y java-1.8.0-openjdk* # 阿里云/清华源java包的位置:ll /usr/lib/jvmdrwxr-xr-x 9 root root 176 Mar 7 07:47 java-1.8.0-openjdk-1.8.0.282.b08-1.el7_9.x86_64 # 这个目录下只有这个是目录,需要将这个路径声明在全局的环境变量中配
Harbor--企业级docker私有仓库 Harbor–企业级docker私有仓库安装准备需要安装docker环境(查看其它文档)、和docker-composedocker-compose安装curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-c