K8s强制删除命名空间(namespace)
查看命名空间列表:命名空间 keda 一直处于Terminating 状态
123456789101112131415kubectl get nsNAME STATUS AGEdefault Active 87ddev Active 21dingress-nginx Active 126mkeda Terminating 126mkube-flannel Active 87dkube-node-lease Active 87dkube-public Active 87dkube-system Active 87dopenfaas Active 87dopenfaas-fn Active 87dopenfunction Active ...
kubernetes部署skywalking集群包括Java服务接入
1 概述:1.1 环境版本信息如下:`a、操作系统:centos 7.9
a、skywalking版本:v9.0.1
c、kubernetes版本:v1.22.0
d、es版本:6.8.6
e、helm版本: helm3.8
`
1.2 skywalking概述1.2.1 skywalking是什么SkyWalking是一个开源的APM系统,为云原生分布式系统提供监控、链路追踪、诊断能力,支持集成多种编程语言的应用(java、php、go、lua等),也能和服务网格进行集成。除了支持代码侵入方式的集成,一个主要亮点也支持零代码入侵的集成(零代码侵入是和具体的编程语言相关的),是利用java agent的特性在jvm级别修改了运行时的程序,因此程序员在代码编辑期间不需要修改业务代码也能达到埋点的效果。后端存储支持es、mysql、tidb等多种数据库。
架构图如下:
1.2.1 skywalking的java代理的使用
1)方式1:命令行方式
12345java \-javaagent:/root/skywalking/agent/skywalking-agent.jar \-Dskyw ...
XFS文件系统挂载报错
Linux 系统中 xfs 分区挂载错误:
错误提示:
mount: /mnt: wrong fs type, bad option, bad superblock on /dev/vdc1, missing codepage or helper program, or other error.
主要场景:
该错误通常在挂载 xfs 类型分区时发生,尤其是在要挂载的磁盘与已挂载磁盘(例如系统盘或数据盘)的磁盘 ID(UUID)冲突时。
解决办法:
1. 检查 UUID 冲突
使用以下命令查询系统日志以检查 UUID 冲突:
1dmesg | tail
如果出现以下提示,则表明存在 UUID 冲突:
1XFS (vdc1): Filesystem has duplicate UUID 60d67439-baf0-4c8b-94a3-3f10a362e8fe - can't mount
2. 使用 nouuid 选项进行临时挂载
如果存在 UUID 冲突,可以使用 nouuid 选项进行临时挂载:
1mount -o nouuid /dev/vdc1 /abc
其中,/dev/vd ...
ceph运维操作
一 统一节点上ceph.conf文件如果是在admin节点修改的ceph.conf,想推送到所有其他节点,则需要执行下述命令
1ceph-deploy --overwrite-conf config push mon01 mon02 mon03 osd01 osd02 osd03
修改完毕配置文件后需要重启服务生效,请看下一小节
二 ceph集群服务管理!!!下述操作均需要在具体运行服务的那个节点上运行,而不是admin节点!!!
2.1 方式一在各具体节点执行下行命令,重启节点上的所有ceph守护进程
1systemctl restart ceph.target
2.2 方式二在各具体节点执行下行命令,按类型重启相应的守护进程
1、重启 mgr 守护进程12systemctl restart ceph-mgr.target
2、重启 mds 守护进程1systemctl restart ceph-mds.target
3、重启 rgw 守护进程1systemctl restart ceph-radosgw.target
4、重启 mon 守护进程1systemctl restar ...
centos7搭建ceph集群
一、服务器规划
主机名
主机IP
磁盘
角色
node3
public-ip:172.18.112.20 cluster-ip: 172.18.112.20
vdb
ceph-deploy,monitor,mgr,osd
node4
public-ip:172.18.112.19 cluster-ip: 172.18.112.19
vdb
monitor,mgr,osd
node5
public-ip:172.18.112.18 cluster-ip: 172.18.112.18
vdb
monitor,mgr,osd
二、设置主机名主机名设置,三台主机分别执行属于自己的命令node3
12[root@localhost ~]# hostnamectl set-hostname nod3[root@localhost ~]# hostname node3
node4
123[root@localhost ~]# hostnamectl set-hostname node4[root@localhost ~]# hostname node4
node5 ...
K8S使用ceph-csi持久化存储之RBD
创建一个ceph pool 创建存储池ceph集群请看这里:https://imszz.com/p/877f6188/
123ceph osd pool create rbd 128ceph osd pool set-quota rbd max_bytes $((50 * 1024 * 1024 * 1024)) #50G的存储池rbd pool init rbd
查看集群状态123456789101112131415[root@node3 ~]# ceph -s cluster: id: 3a2a06c7-124f-4703-b798-88eb2950361e health: HEALTH_OK services: mon: 3 daemons, quorum node5,node4,node3 mgr: node3(active) osd: 3 osds: 3 up, 3 in data: pools: 1 pools, 128 pgs objects: 23 objects, 22 MiB usage: ...
Linux类型虚拟机磁盘扩容
1.1 Linux类型虚拟机磁盘扩容步骤1 查看磁盘状态在虚拟机操作系统内的命令行终端上再次执行“fdisk -l”,发现虚拟磁盘总共有416101个柱面,但只使用了其中的208051个柱面,未被使用的柱面就是扩容之后的磁盘,下面需要为未被使用的柱面创建分区。
123456789101112131415161718192021222324252627282930313233343536373839[root@yjgltpc-cgzs-2 ~]# fdisk -l Disk /dev/vda: 214.7 GB, 214748364800 bytes16 heads, 63 sectors/track, 416101 cylindersUnits = cylinders of 1008 * 512 = 516096 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 by ...
k8s部署nacos-nfs版本
官方给出了两种方式去搭建集权其中一种是快速搭建方式,另一种是集群搭建方式。但是快速搭建的劣势是数据没有持久化,可能会出现数据集丢失的问题,一个集群,做到高可用,数据放入mysql数据库,才是生产环境必须要使用的方式。可以使用自建已有mysql
即在这个k8s集群上搭建nacos集群。
下载代码(代码中自带执行脚本的)1git clone https://github.com/nacos-group/nacos-k8s.git
下载之后,上传代码到可执行服务器上。
部署 NFS为什么要部署nfs呢?什么是nfs呢?在高级使用中,Nacos在K8S拥有自动扩容缩容和数据持久特性,请注意如果需要使用这部分功能请使用PVC持久卷,Nacos的自动扩容缩容需要依赖持久卷,以及数据持久化也是一样,本例中使用的是NFS来使用PVC。也就是说nacos是有状态服务,需要持久化磁盘存储数据。NFS:Network File System(NFS),网络文件系统,存储数据的硬盘。
这个nfs服务部署在哪里?可以部署在这样一台机器上,可以和上面的k8s集群通讯,这里选 ...
K8S 部署 Statefulset mysql
Statefulset MySQL此例是多副本的 MySQL 数据库。示例应用的拓扑结构有一个主服务器和多个副本,使用异步的基于行(Row-Based)的数据复制。
说明: 这不是生产环境下配置。 尤其注意,MySQL 设置都使用的是不安全的默认值,这是因为我们想把重点放在 Kubernetes 中运行有状态应用程序的一般模式上。
创建存储卷集群需要用到存储,准备持久卷(PersistentVolume,简称PV),我这里以yaml文件创建3个PV。如后续伸缩需要更新PersistentVolume 配置
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647kind: PersistentVolumeapiVersion: v1metadata: name: k8s-pv-my1 labels: type: mysqlspec: capacity: storage: 20Gi storageClassName: mysql accessMode ...
K8S基于ingress-nginx实现灰度发布
注解说明通过给 Ingress 资源指定 Nginx Ingress 所支持的 annotation 可实现金丝雀发布。需给服务创建2个 Ingress,其中1个常规 Ingress,另1个为nginx.ingress.kubernetes.io/canary: "true"· 固定的 annotation 的 Ingress,称为 Canary Ingress。Canary Ingress 一般代表新版本的服务,结合另外针对流量切分策略的 annotation 一起配置即可实现多种场景的金丝雀发布。以下为相关 annotation 的详细介绍:
nginx.ingress.kubernetes.io/canary-by-header表示如果请求头中包含指定的 header 名称,并且值为 always,就将该请求转发给该 Ingress 定义的对应后端服务。如果值为 never 则不转发,可以用于回滚到旧版。如果为其他值则忽略该 annotation。
nginx.ingress.kubernetes.io/canary-by-header-value该 ann ...