自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (1)
  • 问答 (3)
  • 收藏
  • 关注

原创 七、使用kubeadm搭建生产环境单master多node节点的k8s集群

DEVICE=ens33#网卡设备名,大家ipaddr可看到自己的这个网卡设备名,每个人的机器可能这个名。kubeadm是官方提供的开源工具,是一个开源项目,用于快速搭建kubernetes集群,目前是比较。Kubeadm和二进制都适合生产环境,在生产环境运行都很稳定,具体如何选择,可以根据实际项目。kubeadm是工具,可以快速搭建集群,也就是相当于用程序脚本帮我们装好了集群,属于自动部。署,简化部署操作,证书、组件资源清单文件都是自动创建的,自动部署屏蔽了很多细节,使得对各个模。............

2022-07-28 10:27:14 217

原创 四、《云原生 | Kubernetes篇》二进制安装部署k8s高可用集群V1.24

1.1、部署k8s的两种方式1)方式一:kubeadm部署Kubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。2)方式二:二进制软件包从github下载发行版的二进制包,手动部署每个组件,组成Kubernetes集群3)两种方式对比Kubeadm降低部署门槛,但屏蔽了很多细节,遇到问题很难排查。如果想更容易可控,推荐使用二进制包部署Kubernetes集群,虽然手动部署麻烦点,期间可以学习很多工作原理,也利于后期维护1.2.1、

2022-06-25 01:59:12 527

原创 二、《云原生 | Kubernetes篇》Kubernetes学习-K8S安装篇-Kubeadm安装高可用K8S集群--生产环境

目录1. Kubernetes 高可用安装1.1.1实验环境规划高可用Kubernetes集群规划kubeadm和二进制安装k8s适用场景分析1.1.2所有节点修改主机名1.1.3配置静态网络(static) 1.1.4一键生成密钥,主机之间免密登录​编辑​编辑 1.1.5 关闭交换分区提升性能1.1.6 修改内核参数1.1.7关闭并禁用防火墙1.1.8 关闭selinux1.1.9 配置阿里repo源1.1.10 配置阿里云docker 的repo源1.1.11配置安装 k8s 组件需要的阿里云的 rep

2022-06-18 19:20:51 690

原创 初始化失败:已解决:error execution phase preflight: [preflight] Some fatal errors occurred: [ERROR Port-6443]

[root@k8s-master01 ~]# kubeadm init --config=kubeadm-config.yaml --experimental-upload-certs | tee kubeadm-init.logFlag --experimental-upload-certs has been deprecated, use --upload-certs instead[init] Using Kubernetes version: v1.15.1[preflight] Runnin

2022-06-14 02:50:13 3883

原创 七、Harbor构建企业级私有docker镜像的仓库的开源解决方案

目录 # Harbor 介绍# Harbor特性# Harbor组件## 1、设置harbor服务器主机名为harbor## 为 Harbor 自签发证书## 生成CA证书## 生成域名证书## 签发证书:##安装 Harbor2、初始化操作:关闭harbor服务器防火墙、禁用SELinuxDocker 容器应用的开发和运行离不开可靠的镜像管理,虽然 Docker 官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的 Registry 也是非常必要的。Harbor 是由 VMwar

2022-06-01 10:03:06 1305

原创 六、《云原生》docker容器数据持久化

容器中的数据可以存储在容器层。但是将数据存放在容器层存在以下问题:数据不是持久化。意思是如果容器删除了,这些数据也就没了主机上的其它进程不方便访问这些数据对这些数据的I/O会经过存储驱动,然后到达主机,引入了一层间接层,因此性能会有所下降Docker 提供了3种持久化数据的方式:volumes:存于主机文件系统中的某个区域,由Docker管理(/var/lib/docker/volumes/ on linux)。非Docker进程不应该修改这些数据。卷是Docker中持久化数据的最好方式bind

2022-05-31 11:11:36 490 1

原创 五、Dockerfile构建nginx、php和tomcat镜像

1、使用dockerfile制作nginx+php-fpm镜像,实现lnmp。1.1 制作基础镜像[root@offline base]# cat dockerfileFROM centos:centos7.8.2003MAINTAINER yanczhuRUN yum install wget -y && rm -rf /etc/yum.repos.d/*.repo && wget -O /etc/yum.repos.d/CentOS-Base.repo ht

2022-05-16 00:05:20 839

原创 四、 《云原生 | docker篇》dockerfile构建tomcat镜像

创建tomacat8目录把apache-tomcat-8.0.26.tar.gz 和jdk-8u45-linux-x64.rpm,Centos-vault-8.5.2111.repo 传到这个目录编写dockerfile文件构建tomcat镜像查看tomcat镜像构建tomcat8容器启动tomcat查看进程是否启动成功打开新的终端窗口,查看刚才创建的tomcat8这个容器的详细信息通过上面可以看到,tomcat在宿主机上映射的端口49153,这样我们请求docker节

2022-05-15 18:13:11 783 1

原创 三 dockerfile构建企业级nginx镜像

docker构建企业级nginx创建dockerfile目录编写dockerfile文件编写index.html首页构建镜像查看镜像是否构建成功基于镜像启动容器查看容器具体信息查看nginx网站内容

2022-05-15 02:12:50 172

原创 二、dockersfile入门

dockerfile指南容器应该是短暂的通过 Dockerfile 构建的镜像所启动的容器应该尽可能短暂(生命周期短)。「短暂」意味着可以停止和销毁容器,并且创建一个新容器并部署好所需的设置和配置工作量应该是极小的。使用 .dockerignore 文件使用 Dockerfile 构建镜像时最好是将 Dockerfile 放置在一个新建的空目录下。然后将构建镜像所需要的文件添加到该目录中。为了提高构建镜像的效率,你可以在目录下新建一个 .dockerignore 文件来指定要忽略的文件和目录。.do

2022-05-13 12:36:59 451

原创 一、docker容器使用以及搭建企业级web网站

区别:1、k8s是一种开放源码的容器集群管理系统,而Docker是一种开放源码的应用容器引擎;2、k8s是一套自动化部署工具,可以管理docker容器是容器编排层面的,docker是容器化技术,是容器层面的。k8s的全称 kubernetes。它是一个完整的分布式系统支撑平台,集群管理功能齐全。Kubernetes同时提供完善的管理工具,涵盖了开发、部署、测试、运行监控等各个环节。k8s是一种开放源码的容器集群管理系统,能够实现自动化部署、扩展容器集群、维护等功能。Docker是一种开放源码的应用容器引擎,

2022-05-05 15:04:03 1700

原创 容器CBS-CSI 常见报错和处理

原因:WaitForFirstConsumer 挂载模式依赖调度器触发云硬盘创建,而指定了 nodeName 参数会导致 Pod 在调度时跳过调度器,从而无法通知插件进行云硬盘创建。原因:cbs 插件在创建云硬盘时,会将集群的云标签集成到云硬盘上。原因:用户配置的 cbs 盘大小不符合规范导致买盘失败,不同类型的 cbs 盘,支持大小区间不同,具体查看 云硬盘类型文档。原因:cbs 插件在创建云硬盘时,会将集群的云标签继承到云硬盘上。解决措施:修改相关集群云标签,避免将标签 value 配置为空。

2024-04-08 13:56:08 358 1

原创 linux系统压力测试软件stress

1。

2023-06-02 13:42:57 249

原创 strace 命令详解

这是因为这里的 exit 函数不是系统调用,而是 glibc 库提供的一个函数,exit 函数的调用最终会转化为 exit_group 系统调用,它会退出当前进程的所有线程。比如我们知道创建进程使用的是 fork 系统调用,但在 glibc 里面,fork 的调用实际上映射到了更底层的 clone 系统调用。实际上,通过分析,我们发现机器上别的服务有个监控脚本,它监控一个也叫做 run.sh 的进程,当发现 run.sh 进程数大于 2 时,就会把它杀死重启。两段代码实现的目的是一样的。

2023-04-22 15:41:23 518 1

原创 常用命令-netstat

netstat通常用来查询系统的网络套接字连接情况,包括 tcp, udp 以及 unix 套接字,另外它还能列出处于监听状态(即等待接入请求)的套接字,如果觉得网络服务没有启动,可以通过该命令来查询。: 列出所有tcp连接端口及其应用程序。:持续输出所有tcp连接端口及其应用程序。:只显示监听的tcp端口及其应用程序。:查看HTTP服务是否在运行。:打印active状态的连接。: 查看使用80端口的程序。:只显示监听的tcp端口。:列出所有tcp端口。

2023-04-14 17:55:12 824

原创 curl ip.sb查询公网ip

ubuntu@VM-0-15-ubuntu:~$ curl ip.sb115.159.x.yubuntu@VM-0-15-ubuntu:~$

2023-04-14 16:01:21 434

原创 获取当前Linux的外网地址 curl ifconfig.me

curl ifconfig.me

2023-04-14 15:59:53 393

原创 ssh配置公钥解决免密登录

这里测试用的客户端服务器地址为:10.202.63.40,服务端服务器为10.202.63.41。可以看到客户端写入到服务器10.202.63.41的 id_rsa.pub (公钥)内容。上面这个命令会在用户目录.ssh文件夹下创建公私钥。客户端通过ssh连接远程服务器,就可以免密登录了。上面这条命令是写到服务器上的ssh目录下去了。本地客户端生成公私钥:(一路回车默认即可)id_rsa.pub (公钥)二. 客户端生成公私钥。id_rsa (私钥)1.客户端生成公私钥。2.上传公钥到服务器。

2022-12-22 10:57:22 756

原创 公钥与私钥是区别

2)鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。用公钥加密的内容只能用私钥解密,用私钥加密的内容只能用公钥解密。,对这个摘要加密,生成"数字签名"(signature)。由此证明,这封信确实是鲍勃发出的。先用Hash函数,生成信件的摘要(digest)。1)鲍勃有两把钥匙,一把是公钥,另一把是私钥。5)鲍勃给苏珊回信,决定采用"数字签名"。3)苏珊要给鲍勃写一封保密的信。,就看到了信件内容。,即使落在别人手里,也无法解密。8)苏珊收信后,取下数字签名,用。,就可以达到保密的效果。

2022-12-22 10:45:00 2626

原创 集群断电重启The connection to the server apiserver.k8s:6443 was refused - did you specify the right

5.如果发现Unit kubelet.service entered failed state.code=exited, status=255 说明这台节点有污点 ,将污点删除。可以采用临时关闭 swapoff -a 但是断电重启之后需要再次设置 也可以设置永久关闭。6.排除问题之后 systemctl start kubelet 重启完成。3.查看kubelet 服务 是否正常。4.如果一会又不正常了请看详细信息。1.断电之后发现集群没有启动起来。2各个节点之间防火墙 一定要检查。

2022-10-22 01:21:15 2701

原创 pid上限问题,linux进程pid达到最大值,linux进程数最大值修改方法

1、此时,使用根用户不断创建进程,最终创建了约32378,考虑到原有的进程数,比较接近pid_max这个值;这个值表示单个用户允许的最大进程数上限。3、RLIMIT_NPROC (ulimit -u 或者 getrlimit)3、修改pid_max为80000,换成普通用户,最终创建了67913个进程。这个值表示进程ID的上限。为了兼容旧版,默认为32768(即两个字节)。2、改pid_max为18000时,最终创建了17612个进程;

2022-10-05 13:13:47 3097

原创 云原生kubernetes七 :Pod进阶篇:污点-容忍度-亲和性-Affinity-调度

【代码】云原生kubernetes十七 :Pod进阶篇:污点-容忍度-亲和性-Affinity-调度。

2022-10-04 16:58:53 585

原创 云原生kubernetes五 :pod创建流程

这些资源就是K8S中承载具体的工作的一些资源,常见的类型有:Pod,ReplicaSet,Deployment,StatefulSet,DaemonSet,Job,Cronjon,...这类型资源主要提供集群的管理相关的功能,常见类型有:Namespace,Node,Role,ClusteRole,RoleBinding,ClusterRoleBinding。这类型的资源主要和存储相关,常见类型有:Volume,CSI,ConfigMap,Secret,DownwardAPI,...

2022-10-02 11:52:19 396

原创 云原生kubernetes六:namespace和Resourcequota

k get ns2查看namespace应用场景命名空间适用于存在很多跨多个团队或项目的用户的场景。对于只有几到几十个用户的集群,根本不需要创建或考虑命名空间。1、查看名称空间及其资源对象(k8s集群默认提供了几个名称空间用于特定目的,例如,kube-system主要用于运行系统级资源,存放k8s一些组件的。而default则为那些未指定名称空间的资源操作提供一个默认值。-

2022-09-28 13:00:19 427

原创 kubectl别名配置

alias k='kubectl'alias kg='kubectl get'alias kgpo='kubectl get pod'alias ksysgpo='kubectl --namespace=kube-system get pod'

2022-08-31 10:31:28 899

原创 【云原生kubernetes】coredns解析集群外部域名

在实际的生产中,容器化并不是从服务的最初开发阶段便被应用的,因此,只要不是雷同,服务运行时实际所需的域名一定不是xxxx.default.svc.cluster.local, 而一定是其他的格式,例如:proxy.mgmt.pix.yun.com。么, 在哪里可以设置容器的/etc/resolv.conf中的该选项呢?众所周知,在一个kubernetes集群中,各服务之间可以通过各自的FQDN互相访问,而集群中的kube-dns服务为此提供了域名解析的功能, 使用如下的命令可以看到。kube-dns简介。.

2022-08-14 14:09:22 506

原创 etcdctl的使用[v3版本]

etcdctl的v3版本与v2版本使用命令有所不同,本文介绍etcdctl v3版本的命令工具的使用方式。

2022-08-13 00:04:39 2003

原创 calico报错Init:0/3或Init:RunContainerError

先用kubectl get pods --all-namespaces -owide查看问题pod,然后用kubectl describe pod pod_name -n kube-system来查看日志,一般情况下,我们都是可以通过这个方式来获取到报错原因的【一波情况下哈,并非绝对】把imagePullPolicy: IfNotPresent删掉,因为这个部署如果本地有镜像以后,即使是离线环境也默认使用本地镜像的,不需要指定imagePullPolicy: IfNotPresent,指定后就报错了。...

2022-08-11 00:01:57 2223

原创 十、k8s健康检查之 livenessProbe/readinessProbe

一个pod启动了之后,它有可能还在做初始化,这就意味着在初始化的应用进程还不能接受网络流量,所以要去控制一下pod的状态,也就是我还没有就绪,我还不能够接受流量。有些应用跑着跑着没有响应,出现大量的503,应用实例以及不能够正常工作了,是否需要帮你重启。tcp stocket 查看某个端口,比如某个应用跑在80端口上面,你只需要去看80端口是否是活着的,你就能够知道它是否就绪了。...

2022-08-10 23:22:07 790

原创 九、Kubernetes Pod生命周期 钩子 pod hook

默认:K8S 通知 node 执行docker stop命令,docker 会先向容器中PID为1的进程发送系统信号SIGTERM,然后等待容器中的应用程序终止执行,如果等待时间达到设定的超时时间,或者默认超时时间(30s),会继续发送SIGKILL的系统信号强行 kill 掉进程。Kubernetes 为我们的容器提供了生命周期钩子,就是我们说的Pod Hook,Pod Hook 是由 kubelet 发起的,当容器中的进程启动前或者容器中的进程终止之前运行,这是包含在容器的生命周期之中。...

2022-08-10 23:12:21 364

原创 容器内存溢出排障思路

kmem account 是cgroup 的一个扩展,全称CONFIG_MEMCG_KMEM,属于机器默认配置,本身没啥问题,只是该特性在 3.10 的内核上存在漏洞有内存泄露问题,4.x的内核修复了这个问题。为了防止这种攻击,社区中提议通过linux内核限制 cgroup中的kmem 容量,从而限制恶意进程的行为,即kernel memory accounting机制。因为3.10 的内核已经明确提示 kmem 是实验性质,我们仍然使用该特性,所以这其实不算内核的问题,是 k8s 兼容问题。...

2022-08-10 22:03:04 856

原创 ps命令输出

要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps 命令就是最基本同时也是非常强大的进程查看命令。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。在预设的情况下, ps 仅会列出与目前所在的 bash shell 有关的 PID 而已,所以, 当我使用 ps -l 的时候,只有三个 PID。Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态。....

2022-08-06 08:32:51 1093

原创 八、kubernetes可修改的sysctl内核参数

此示例中,使用 Pod SecurityContext 来对一个安全的 sysctl 参数 kernel.shm_rmid_forced 以及两个非安全的 sysctl 参数 net.core.somaxconn 和 kernel.msgmax 进行设置。目前,在 Linux 内核中,有许多的 sysctl 参数都是 有命名空间的。可使用 Pod 的 securityContext 来配置有命名空间的 sysctl 参数, securityContext 应用于同一个 Pod 中的所有容器。...

2022-08-05 23:49:06 952

原创 k8s如何强制删除pod&pv&pvc和ns&namespace方法

目录注意:以下操作方法十分危险,三思而行!!!如果名称空间、pod、pv、pvc全部处于“Terminating”状态时,此时的该名称空间下的所有控制器都已经被删除了,之所以出现pod、pvc、pv、ns无法删除,那是因为kubelet 阻塞,有其他的资源在使用该namespace,比如CRD等,尝试重启kubelet,再删除该namespace 也不好使。正确的删除方法:删除pod--> 删除pvc ---> 删除pv --> 删除名称空间。...

2022-08-05 19:54:16 1942

原创 2022年linux面经必备(持续更新中)

awk '{pattern + action}' {filenames} #cat /etc/passwd |awk -F ':' '{print 1"\t"7}' //-F 的意思是以':'分隔 root /bin/bash daemon /bin/sh 搜索/etc/passwd 有 root 关键字的所有行 #awk -F: '/root/' /etc/passwd root:x:0:0:root:/root:/bin/bash。df显示每个所在的文件系统的信息,默认是显示所有文件系统。.......

2022-08-05 19:30:45 1102

原创 Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of

当kubeadm安装完k8s后,使用kubectl命令,报错。

2022-08-01 23:37:43 5576

原创 三、k8s命名空间详细介绍

虽然在命名空间中名称必须是唯一的,但是相同的名称可以在不同的命名空间中使用。在本文中,我们会讨论命名空间的工作原理,介绍一些常用实例,并分享如何使用命名空间来管理Kubernetes对象。Rancher的project没有引入新的组织模型,而是简单地将相同的抽象应用到了命名空间上,而命名空间作用于工作负载对象。我们讨论了集群中命名空间是如何为资源名称分段和分作用域的,以及在命名空间层面应用的策略如何影响用户权限和资源分配。另外,命名空间的特性可以让你控制网络和访问策略,为你的使用者定义不同的配额。.....

2022-08-01 21:28:17 953

原创 获取 GPG 密钥失败:[Errno 14] curl#37 - “Couldn‘t open file /etc/pki/rpm-gpg/

把gpgcheck=1改为gpgcheck=0即可,意思是在安装的时候不进行源的检查。这个就是安装的时候会检查key这个可以再repo文件中关闭即可。

2022-07-31 17:50:11 1237

原创 TPS、QPS、吞吐量,的计算公式

TPS(transactionpersecond)代表每秒执行的事务数量,可基于测试周期内完成的事务数量计算得出。例如用户每分钟执行6个事务,TPS为6/60s=0.10TPS。同时我们会知道事务的响应时间(或节拍)60秒完成6个事务,代表每个事务的响应时间或节拍为10秒。......

2022-07-31 17:14:35 9387

原创 Linux - 配置固定的ip地址

是否启动DHCPnone为禁用DHCP;#是否启动DHCPnone为禁用DHCP;#就是defaultroute,是否把这个网卡设置为ipv4默认路由。#就是defaultroute,是否把这个网卡设置为ipv6默认路由。#就是defaultroute,是否把这个网卡设置为ipv4默认路由。#就是defaultroute,是否把这个网卡设置为ipv6默认路由。#启动或者重启网络时是否启动该设备yes是启用;#是否使用IPV6地址yes为使用;#是否使用IPV6地址yes为使用;...

2022-07-26 22:40:03 6931

linux基础笔记.doc

linux学习基础知识

2020-05-31

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除