- 博客(56)
- 收藏
- 关注
原创 k8s--安全认证
Kubernetes作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。所谓的安全性其实就是保证对Kubernetes的各种客户端进行认证和鉴权操作。客户端:一般是独立于kubernetes之外的其他服务管理的用户账号。:kubernetes管理的账号,用于为Pod中的服务进程在访问Kubernetes时提供身份标识。认证、授权与准入控制ApiServer是访问及管理资源对象的唯一入口。Authentication(认证):身份鉴别,只有正确的账号才能够通过认证。
2024-09-13 21:43:54
1186
原创 k8s--数据存储
在前面已经提到,容器的生命周期可能很短,会被频繁地创建和销毁。那么容器在销毁时,保存在容器中的数据也会被清除。这种结果对用户来说,在某些情况下是不乐意看到的。为了持久化保存容器的数据,kubernetes引入了Volume的概念。Volume是Pod中能够被多个容器访问的共享目录,它被定义在Pod上,然后被一个Pod里的多个容器挂载到具体的文件目录下,kubernetes通过Volume实现同一个Pod中不同容器之间的数据共享以及数据的持久化存储。
2024-09-13 20:42:50
898
原创 k8s--Ingress
在前面课程中已经提到,Service对集群之外暴露服务的主要方式有两种:NotePort和LoadBalancer,但是这两种方式,都有一定的缺点:- NodePort方式的缺点是会占用很多集群机器的端口,那么当集群服务变多的时候,这个缺点就愈发明显- LB方式的缺点是每个service需要一个LB,浪费、麻烦,并且需要kubernetes之外设备的支持。
2024-09-12 15:08:03
522
原创 k8s--service
在kubernetes中,pod是应用程序的载体,我们可以通过pod的ip来访问应用程序,但是pod的ip地址不是固定的,这也就意味着不方便直接采用pod的ip对服务进行访问。 为了解决这个问题,kubernetes提供了Service资源,Service会对提供同一个服务的多个pod进行聚合,并且提供一个统一的入口地址。通过访问Service的入口地址就能访问到后面的pod服务。
2024-09-12 13:39:42
722
原创 k8s--pod控制器--2
在前面的课程中,我们已经可以实现通过手工执行命令实现Pod扩容或缩容,但是这显然不符合Kubernetes的定位目标--自动化、智能化。Kubernetes期望可以实现通过监测Pod的使用情况,实现pod数量的自动调整,于是就产生了Horizontal Pod Autoscaler(HPA)这种控制器。HPA可以获取每个Pod利用率,然后和HPA中定义的指标进行对比,同时计算出需要伸缩的具体值,最后实现Pod的数量的调整。
2024-09-11 18:23:37
1372
原创 k8s--pod控制器--1
Pod是kubernetes的最小管理单元,在kubernetes中,按照pod的创建方式可以将其分为两类:自主式pod:kubernetes直接创建出来的Pod,这种pod删除后就没有了,也不会重建控制器创建的pod:kubernetes通过控制器创建的pod,这种pod删除了之后还会自动重建什么是Pod控制器Pod控制器是管理pod的中间层,使用Pod控制器之后,只需要告诉Pod控制器,想要多少个什么样的Pod就可以了,它会创建出满足条件的Pod并确保每一个Pod资源处于用户期望的目标状态。
2024-09-11 13:32:00
1312
原创 k8s--pod--2
我们一般将pod对象从创建至终的这段时间范围称为pod的生命周期,它主要包含下面的过程:- pod创建过程- 运行初始化容器(init container)过程- 运行主容器(main container) - 容器启动后钩子(post start)、容器终止前钩子(pre stop) - 容器的存活性探测(liveness probe)、就绪性探测(readiness probe)- pod终止过程在整个生命周期中,Pod会出现5种**状态**(**相位**),分别如下:- 挂起(Pending):a
2024-09-10 23:29:14
1119
原创 k8s--Pod--1
每个Pod中都可以包含一个或者多个容器,这些容器可以分为两类:用户程序所在的容器,数量可多可少Pause容器,这是每个Pod都会有的一个,它的作用有两个:可以以它为依据,评估整个Pod的健康状态可以在根容器上设置Ip地址,其它容器都此Ip(Pod IP),以实现Pod内部的网路通信这里是Pod内部的通讯,Pod的之间的通讯采用虚拟二层网络技术来实现,我们当前环境用的是Flannel。
2024-09-09 22:26:11
1267
原创 k8s--实战入门
Namespace是kubernetes系统中的一种非常重要资源,它的主要作用是用来实现或者。默认情况下,kubernetes集群中的所有的Pod都是可以相互访问的。但是在实际中,可能不想让两个Pod之间进行互相的访问,那此时就可以将两个Pod划分到不同的namespace下。kubernetes通过将集群内部的资源分配到不同的Namespace中,可以形成逻辑上的"组",以方便不同的组的资源进行隔离使用和管理。
2024-09-09 16:25:17
1092
原创 k8s--资源管理
YAML是一个类似 XML、JSON 的标记性语言。它强调以数据为中心,并不是以标识语言为重点。因而YAML本身的定义比较简单,号称"一种人性化的数据格式语言"。<heima></heima>heima:age: 15YAML的语法比较简单,主要有下面几个:大小写敏感使用缩进表示层级关系缩进不允许使用tab,只允许空格( 低版本限制 )缩进的空格数不重要,只要相同层级的元素左对齐即可'#'表示注释YAML支持以下几种数据类型:纯量:单个的、不可再分的值。
2024-09-09 08:48:19
1292
原创 ansible--role
roles是ansible,playbooks的目录的组织结构,将代码或文件进行模块化,成为roles的文件目录组织结构。易读,代码可冲哟美好,层次清晰。
2024-09-07 13:02:50
503
原创 Ansible
ansible连接主机主要是通过ssh,如果配置免密,就不需要输入密码或在/etc/ansible/hosts 中加入密码,在这个配置文件中,也可以直接写server2,server3。如果不在/etc/ansible/hosts中的ip,使用ansible是没有用的。ansible内部变量可以帮助我们简化主机清单的设置,可以简化配置时有相同的配置。帮助 ansible-doc steup。帮助 ansible-doc fetch。帮助 ansible-doc yum。把主机中的某个文件发送到其他主机。
2024-09-05 20:01:13
699
原创 shell编程--函数
Shell函数的返回值,可以和其他语言的返回值一样,通过return语句返回,return只能用来返回整数值。$*:函数的全部参数,参数之间使用变量$IFS值的第一个字符分隔,默认为空格,但是可以自定义。Shell 函数的变量不像其它语言中需要在变量前定义变量类型什么的,更没有结果符号等。函数的参数变量,与脚本参数变量是一致的。如果函数的参数多于9个,那么第10个参数可以用${10}的形式引用,以此类推。$@:函数的全部参数,参数之间使用空格分隔。$1~$9:函数的第一个到第9个的参数。
2024-09-03 15:36:08
422
原创 expect--免交互式语言
我们通过Shell可以实现简单的控制流功能,如:循环、判断等。但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如ssh服务器等进行交互的功能。而Expect就使用来实现这种功能的工具。Expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。Expect的作者Don Libes在1990年开始编写Expect时对Expect做有如下定义:E。
2024-09-01 23:57:48
182
原创 Shell编程--循环
前提1: 已经完成秘钥登录配置(ssh-keygen)通过循环工具,探测全网主机。将在线主机记录在文本中。使用for实现批量主机root密码的修改。前提3:并了解远程修改密码的方法。每秒显示一个数字,一次递增+1。需求:自动循环创建10个用户。特点:循环次数不一定是固定的。需求:每个一秒循环一个数字。通过用户列表文件创建用户。前提2:定义主机地址列表。
2024-08-30 09:39:13
226
原创 k8s集群环境搭建(一主二从--kubeadm安装)
版本:CentOS Linux release 7.5.1804 (Core)内存:2GCPU:2。
2024-08-28 09:07:57
980
原创 Shell编程
name=123aa=123aa=456#覆盖aa为456psread -p "请输入内容" nameecho $name$*和$@:这两个变量都代表所有的参数列表,但是它们在使用上有一些区别。$*会将所有的参数视为一个单一的字符串,而$@会将每个参数视为独立的字符串。$0代表当前脚本的名称$# 参数的个数。
2024-08-04 18:15:37
220
原创 DockerDompose
指定project名称。project就是当前compose文件中设置的多个service的集合,是逻辑概念。指定compose文件的路径和名称。创建并启动所有service容器。在指定的运行中容器中执行命令。停止并移除所有容器、网络。
2024-07-31 11:39:05
149
原创 Docker容器网络互联
在自定义网络中,可以给容器起多个别名,默认的别名是容器名本身。在同一个自定义网络中的容器,可以通过别名互相访问。加入自定义网络的容器才可以通过容器名互相访问,也可以在启动容器时加入--network 参数。现在无需记住IP地址也可以实现容器互联了。使指定容器连接加入某网络。使指定容器连接离开某网络。
2024-07-30 15:53:13
158
原创 Dockerfile
举个例子,我们要从0部署一个Java应用,大概流程是这样:准备一个linux服务(CentOS或者Ubuntu均可)安装并配置JDK上传Jar包运行jar包我们打包镜像也是分成这么几步:准备Linux运行环境(java项目并不需要完整的操作系统,仅仅是基础运行环境即可)安装并配置JDK拷贝jar包配置启动脚本。
2024-07-30 15:42:12
486
原创 docker部署mysql
前面为宿主机端口,后边为容器内端口,当你访问3306端口时,他会自动映射到容器内的3306端口,以此来完成mysql的访问。:给容器起个名字,必须唯一。:创建并运行一个容器,:指定运行的镜像的名字。
2024-07-30 09:54:41
345
原创 docker安装-centos
阿里云——阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司之一。提供免费试用、云服务器、云数据库、云安全、云企业应用等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。免费备案,7x24小时售后支持,助企业无忧上云。阿里云-计算,为了无法计算的价值。首先要安装一个yum工具。以我的阿里云加速器为例。
2024-07-30 09:27:24
400
1
原创 su,sudo,用户和用户组
su [-] [用户名]-符号可选,表示是否切换用户后加载环境变量,建议加上参数,用户名,也可省略,省略表示切换为root可通过exit或ctrl+d来回退上个用户su - root。
2024-07-25 15:48:13
308
原创 vim编辑器
是主要使用快捷键的模式,是我们后面学习的重点。命令模式想要进入输入模式,可 以使用以下的方式:主要用于文本编辑,和记事本类似,输入数据就好。:w 保存不退出:w 新文件名把文件另存为新文件:q 不保存退出:wq 保存退出强制:q!强制不保存退出,用于修改文件之后,不保存数据退出。:wq!强制保存退出,当文件的所有者或者root用户,对文件没有写权限的时候,强制写入数据使用。
2024-07-25 14:37:02
927
原创 Linux常见命令
ls [选项] [文件名或目录名] 选项:-a: 显示所有文件--color=when: 支持颜色输出,when的值默认是always(总显示颜色),也可以是 never(从不显示颜色)和auto(自动)-d: 显示目录信息,而不是目录下的文件-h: 人性化显示,按照我们习惯的单位显示文件大小-i: 显示文件的i节点号-l: 长格式显示。
2024-07-25 12:02:50
1006
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人