文章 94
评论 0
浏览 244841
kubernetes之二进制安装1.25.+版本

kubernetes之二进制安装1.25.+版本

一、基础环境准备 集群规划信息: 主机名称IP地址说明 master01192.168.10.11master节点 master02192.168.10.12master节点 master03192.168.10.13master节点 node01192.168.10.14node节点 node02192.168.10.15node节点 master-lb127.0.0.1:6443nginx代理监听地址 说明: master节点为3台实现nginx进行代理master流量实现高可用,master也安装node组件。 node节点为2台 nginx在所有节点安装,监听127.0.0.1:6443端口 系统使用centos7.X 1.1 基础环境配置 1.所有节点配置hosts cat >>/etc/hosts<<EOF 192.168.10.11 master01 192.168.10.12 master02 192.168.10.13 master03 192.168.10.14 node01 192.168.10.15 node02 EOF ....

kubernetes之kubeadm安装1.25.+版本

kubernetes之kubeadm安装1.25.+版本

一、基础环境准备 集群规划信息: 主机名称IP地址说明 master01192.168.10.51master节点 master02192.168.10.52master节点 master03192.168.10.53master节点 node01192.168.10.54node节点 node02192.168.10.55node节点 master-lb127.0.0.1:16443nginx组件监听地址 说明: master节点为3台实现高可用,并且通过nginx进行代理master流量实现高可用,master也安装node组件。 node节点为2台 nginx在所有节点安装,监听127.0.0.1:16443端口 系统使用centos7.X 1.1 基础环境配置 1.所有节点配置hosts cat >>/etc/hosts<<EOF 192.168.10.11 master01 192.168.10.12 master02 192.168.10.13 master03 192.168.10.14 node01 192.168.10.15 n....

kubectl备忘录

kubectl备忘录

一、kubectl备忘录 1.1 kubectl的bash自动补全 在bash中设置当前shell的自动补全,需先安装bash-completion包否则会报错 #方法1:临时生效退出重新登录会失效 source <(kubectl completion bash) #方法2:永久生效写入到/etc/profile文件中,这样会导致所有用户都会生效,如果只给一个用户生效请写到~/.bashrc文件中 echo 'source <(kubectl completion bash)' >>/etc/profile 您还可以为 kubectl 使用一个速记别名,该别名也可以与 completion 一起使用 cat ~/.bashrc source <(kubectl completion bash) alias k=kubectl #别名 complete -F __start_kubectl k #设置completion #执行命令如下 k get pod 1.2 kubectl认证文件 kubectl客户端工具与k8s集群通信,需要一个上下文配置文件....

KVM虚拟机批量部署脚本

KVM虚拟机批量部署脚本

KVM虚拟机部署脚本 脚本以及虚拟机模板下载地址:https://pan.baidu.com/s/10AUvrja8PkJu7fKhJmbqNg 提取码:6od7 脚本使用前提 需要自己事先安装kvm,以及配置好桥接网卡 且需要使用virt-customize工具请进行安装,不同发行版本linux安装包不一致请自行查询 在控制节点安装ansible 脚本可实现批量创建centos7.4虚拟机,自行配置网络以及登录密码与主机名称 使用说明: 所有配置文件存放在config目录下只需要修改hosts(主机清单)以及config.yml配置文件 脚本执行kvm.sh即可 创建存储池 ./kvm.sh create-pool 存储池名称 存储池数据存放目录 创建虚拟机 需要提前准备虚拟机模板,且解压到qcow2-files文件夹修改config.yml中image_file配置 修改hosts #要管理的kvm主机 [kvm] 10.202.42.16 10.202.43.247 10.202.43.240 10.202.41.200 #连接信息 [all:vars] ansib....

KVM基础使用

KVM基础使用

一、KVM的部署 1.1 Centos系统 需要提前配置好yum源,如果没有配置配置方式如下: $ cat centos.repo [centos7] name=centos7 baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/ gpgcheck=0 部署KVM工具包 yum install -y qemu-kvm qemu-kvm-tools libvirt libvirt-client virt-manager virt-install 启动服务 systemctl start libvirtd systemctl enable libvirtd 验证是否生成nat网卡virbr0 [13:57:12 root@centos7 ~]#ip a 4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000 link/ether 52:54:00....

Firewalld

Firewalld

一、firewalld Firewalld 是一个Linux防火墙管理器,它用于管理iptables规则和网络连接。它可以动态地管理网络连接,可以在运行时添加和删除规则,支持IPv4和IPv6,可以使用Zones对不同的网络环境进行配置,使得防火墙规则更加灵活和易于管理。Firewalld还支持多种服务和端口,可以通过简单的命令行或图形界面进行配置。 firewalld 提供了一个 daemon 和 service,还有命令行和图形界面配置工具,它仅仅是替代了 iptables service 部分,其底层还是使用 iptables 作为防火墙规则管理入口,firewalld 自身并不具备防火墙的功能,而是和 iptables 一样需要通过内核的 netfilter 来实现,也就是说 firewalld 和 iptables 一样,他们的作用都是用于维护规则,而真正使用规则干活的是内核的 netfilter,只不过 firewalld 和 iptables 的结构以及使用方法不一样罢了 1.1 firewalld区域 Firewalld中的区域(Zone)是用于定义网络环境的概念,可以....

ansible之k8s模块

ansible之k8s模块

一、模块安装 这里使用centos7进行说明。 yum install python2-kubernetes python-openshift ansible 验证 ansible-doc k8s 二、模块使用详解 前提:需要在主机安装kubectl命令并且可以正常执行连接集群 2.1 k8s模块 可以用来创建删除k8s中各种资源 注意:模块具有幂等性,如果监测到资源以及存在则不会进行创建,判断依据为是否有这个相同名称的资源。如果资源内容进行修改资源存在不会进行更新。 1.直接创建 - hosts: localhost tasks: - name: create namespace k8s: #使用k8s模块 kubeconfig: /root/.kube/config #k8s连接的认证文件,如果不指定默认值为~/.kube/config name: zhangzhuo #创建资源名称 api_version: v1 #资源的api kind: Namespace #资源类型 state: present #动作创建present,删除absent 2.使用definition....

Windows搭建k8s实验环境

Windows搭建k8s实验环境

一、Workstation的容器环境 依赖项: Workstation Pro 17 Windows 10 1809或更高版本 需要互联网以及科学上网 在新版本的Workstation中官方提供了一个vctl工具可进行容器的启动与管理,与docker功能基本相同,此外vctl还提供了KIND支持,以便KIND可以使用vctl容器作为节点来运行本地Kubernetes 集群。 相关的可执行文件捆绑在Workstation Pro应用程序中,可在C:\Program Files (x86)\VMware\VMware Workstation文件夹中找到这些文件。 以下部分简要说明了vctl命令行实用程序的三个可执行文件 containerd.exe:这是一个在后台运行的运行时守护进程。必须先启动containerd守护进程,然后才能运行任何与容器相关的操作。要启动该守护进程,请使用vctl system start命令,要停止该守护进程,请使用vctl system stop命令。 containerd-shim-crx-v2.exe:启动新容器时,将启动一个新的 container....

OpenKruise插件

OpenKruise插件

一、OpenKruise介绍 OpenKruise是一个基于Kubernetes的扩展套件,他提供的绝大部分能力都是基于CRD扩展来定义,他们不存在任何外部依赖,可以运行在任意纯净的Kubernetes集群中。简单来说OpenKruise对于Kubernetes是一个辅助扩展角色。Kubernetes自身已经提供了一些应用部署管理的功能,比如一些基础工作负载。 但对于大规模应用与集群的场景,这些基础功能是远远不够的。OpenKruise可以被很容易地安装到任意Kubernetes集群中,它弥补了Kubernetes在应用部署、升级、防护、运维等领域的不足。 OpenKruise包含了一系列增强版本的Workloads(工作负载),比如CloneSet、Advanced StatefulSet、Advanced DaemonSet、BroadcastJob等,它们不仅支持类似于 Kubernetes 原生 Workloads 的基础功能,还提供了如原地升级、可配置的扩缩容/发布策略、并发操作等。其中,原地升级是一种升级应用容器镜像甚至环境变量的全新方式,它只会用新的镜像重建 Pod 中....

k8s管理GPU节点

k8s管理GPU节点

1.确定显卡型号并下载驱动 确定显卡型号 ➜ ~ lspci | grep NV 01:00.0 VGA compatible controller: NVIDIA Corporation GM200 [GeForce GTX TITAN X] (rev a1) 01:00.1 Audio device: NVIDIA Corporation GM200 High Definition Audio (rev a1) 02:00.0 VGA compatible controller: NVIDIA Corporation GM200 [GeForce GTX TITAN X] (rev a1) 02:00.1 Audio device: NVIDIA Corporation GM200 High Definition Audio (rev a1) 下载对应型号的显卡驱动:https://www.nvidia.cn/Download/index.aspx?lang=cn 2.升级内核并且安装驱动 升级内核 内核升级必须安装以下三个包且版本必须一致,kernel-lt-headers包安....

Coredns

Coredns

一、Coredns简介 官方文档:https://coredns.io/plugins/ CoreDNS是一个DNS服务器,它是用Go编写的。CoreDNS与其他DNS服务器不同,因为它非常灵活几乎所有功能都包含到插件中。 kubernetes中使用coredns提供service资源名称的域名解析,使用kubernetes插件。 当然coredns还有许多的实用插件,官方网站:https://coredns.io/plugins/ 二、Coredns使用 2.1 Coredns配置文件 .:53 { hosts { 10.0.0.1 example.org fallthrough } forward . 114.114.114.114:53 #上面无法处理的请求会传到这里 prometheus loadbalance log } 2.2 插件 1.errors 在查询处理过程中遇到的任何错误都将打印到标准输出。特定类型的错误可以在一段时间内合并和打印一次。 基本语法: errors 2.health 启用进程范围的健康探测接口。当CoreDNS启动并运行时,它会返回200 OK ....

Calico网络策略详解

Calico网络策略详解

一、Calico网络策略介绍 官方文档:https://projectcalico.docs.tigera.io/about/about-network-policy 1.1 什么是kubernetes网络策略 网络策略是保护Kubernetes网络的主要工具。它允许你轻松限制集群中的网络流量,以便只允许您想要流动的流量。 为了理解网络策略的重要性,让我们简单探讨一下网络安全通常是如何在网络策略之前实现的。在企业网络中,网络安全是通过设计网络设备(交换机、路由器、防火墙)的物理拓扑及其相关配置来提供的。物理拓扑定义了网络的安全边界。在虚拟化的第一阶段,相同的网络和网络设备构造在云中被虚拟化,并且用于创建(虚拟)网络设备的特定网络拓扑的相同技术被用于提供网络安全。添加新的应用程序或服务通常需要额外的网络设计来更新网络拓扑和网络设备配置,以提供所需的安全性。 相比之下,Kubernetes 网络模型定义了一个平面网络,其中每个 pod 都可以使用 pod IP 地址与集群中的所有其他 pod 进行通信。这种方法极大地简化了网络设计,并允许在集群中的任何位置动态调度新的工作负载,而不依赖于网....

k8s网络策略

k8s网络策略

一、NetworkPolicy基础概念 如果你希望在 IP 地址或端口层面(OSI 第 3 层或第 4 层)控制网络流量, 则你可以考虑为集群中特定应用使用 Kubernetes 网络策略(NetworkPolicy)。 NetworkPolicies 适用于一端或两端与 Pod 的连接,与其他连接无关。 Pod 可以通信的 Pod 是通过如下三个标识符的组合来辩识的 其他被允许的 Pods(例外:Pod 无法阻塞对自身的访问) 被允许的名字空间 IP 组块(例外:与 Pod 运行所在的节点的通信总是被允许的, 无论 Pod 或节点的 IP 地址) 配置前置条件 网络策略通过网络插件来实现。要使用网络策略,你必须使用支持 NetworkPolicy 的网络解决方案。 创建一个 NetworkPolicy 资源对象而没有控制器来使它生效的话,是没有任何作用的。使用支持网络策略的网络插件才可以正常使用网络策略如calico。 Pod 隔离的两种类型 Pod 有两种隔离: 出口的隔离和入口的隔离。它们涉及到可以建立哪些连接。 这里的“隔离”不是绝对的,而是意味着“有一些限制”。 另外的,....

Restic文件备份工具

Restic文件备份工具

一、Restic介绍 Restic 是一款 GO 语言开发的开源免费且快速、高效和安全的跨平台备份工具。Restic 使用加密技术来保证你的数据安全性和完整性,可以将本地数据加密后传输到指定的存储。Restic 同样支持增量备份,可随时备份和恢复备份。Restic 支持大多数主流操作系统,比如:Linux、macOS、Windows 以及一些较小众的操作系统 FreeBSD 和 OpenBSD 等。 官方文档:https://restic.readthedocs.io/en/stable/index.html Restic优势 Restic 每次备份都会生成一个快照,记录当前时间点的文件结构,可以找回特定时间点的文件。通常可以实现在不清理快照时同一个文件的版本记录。 Restic 配置信息直接写在仓库,只要有仓库密码,在任何安装了Restic的计算机上都可以操作仓库。 Restic 面向的是文件备份和加密,文件先加密再传输备份,而且是增量备份,即每次只备份变化的部分。 Restic 可以备份数据到不同的类型的数据仓库如本地存储、SFTP、Minio等。 Restic 支持多种操作系统....

Mysql数据备份

Mysql数据备份

xtrabackup工具 官方网站:https://www.percona.com/software/mysql-database/percona-xtrabackup 如果数据库数据量比较大推荐使用xtrabackup工具进行数据备份 1.1 xtrabackup介绍 xtrabackup命令 #常用参数 --user #该选项表示备份账号 --password #该选项表示备份的密码 --port #该选项表示备份数据库的端口 --host #选项表示备份数据库的地址 --socket #该选项表示mysql.sock所在位置,以便备份进程登录mysql。 --defaults-file #该选项指定了从哪个文件读取MySQL配置,必须放在命令行第一个选项的位置 --databases #该选项接受的参数为数据名,如果要指定多个数据库,彼此间需要以空格隔开;如:"db1 db2",同时,在指定某数据库时,也可以只指定其中的某张表。如:"mydatabase.mytable"。该选项对innodb引擎表无效,还是会备份所有innodb表。此外,此选项也可以接受一个文件为参数,文件中每....

postgres数据库备份

postgres数据库备份

一、使用Postgres自带工具进行备份 pg数据库远程备份命令pg_dump 命令参数介绍 dbname #指定要被转储的数据库名。如果没有指定,将使用环境变量PGDATABASE。如果环境变量也没有设置,则使用指定给该连接的用户名 -h #连接数据库IP地址 -p #连接数据库端口 -U #连接数据库用户名 -W #连接密码 --create #备份文件中生存数据库创建命令 备份执行命令 pg_dump 数据库名称 -h 地址 -p 端口 -U postgres >文件名称.sql 恢复命令 psql -h 地址 -p 端口 -U postgres -f eg_app.sql 备份脚本 [17:46:05 root@centos7 ~]#cat pg_backup.sh #!/bin/bash PG_HOST="10.202.63.55" PG_PORT="5000" PG_USER="postgres" PG_PWD="Gridsum2022" export export PGPASSWORD=${PG_PWD} databases=$(psql -h ${PG_HO....

DevOps自动化构建应用

DevOps自动化构建应用

一、基于k8s相关流水线准备 jenkins使用kubernetes插件可以实现,动态创建流水线相关的任务Pod在流水线执行结束后会删除相应的任务Pod以达到资源的释放。 具体kubernetes的agent使用详解 pipeline { agent { kubernetes { cloud 'kubernetes' //这里需要指定相关jenkins中创建的kubernetes对接信息的名称 slaveConnectTimeout 1200 //超时配置 workspaceVolume emptyDirWorkspaceVolume() //jenkins的工作目录,必须设置起到一个Pod中不同container的目录共享jenkins工作目录 yaml ''' //这里以下都是Pod定义信息 kind: Pod metadata: name: jenkins-agent namespace: jenkins spec: containers: - args: [\'$(JENKINS_SECRET)\', \'$(JENKINS_NAME)\'] image: '192.168.1....

Jenkins的流水线详解

Jenkins的流水线详解

一、什么是流水线 jenkins有2中流水线分为声明式流水线与脚本化流水线,脚本化流水线是jenkins旧版本使用的流水线脚本,新版本Jenkins推荐使用声明式流水线。文档只介绍声明流水线。 1.1 声明式流水线 在声明式流水线语法中,流水线过程定义在 Pipeline{}中,Pipeline 块定义了整个流水线中完成的所有工作,比如 参数说明: agent any:在任何可用的代理上执行流水线或它的任何阶段,也就是执行流水线过程的位置,也可以指定到具体的节点 stage:定义流水线的执行过程(相当于一个阶段),比如下文所示的 Build、Test、Deploy, 但是这个名字是根据实际情况进行定义的,并非固定的名字 steps:执行某阶段具体的步骤。 //Jenkinsfile (Declarative Pipeline) pipeline { agent any stages { stage('Build') { steps { echo 'Build' } } stage('Test') { steps { echo 'Test' } } stage('Deploy') {....

基于k8s的DevOps环境构建

基于k8s的DevOps环境构建

一、基于k8s的DevOps环境构建 IP地址配置服务名称 192.168.10.114C/8G/50Gk8s-master 192.168.10.124C/8G/50Gk8s-node1 192.168.10.134C/8G/50Gk8s-node2 192.168.10.144C/4G/50Ggitlab 192.168.10.154C/4G/50Gharbor 192.168.10.164C/4G/50Gjenkins 二、下载并部署 gitlab 1.gitlab 安装及使用 安装包下载地址:https://packages.gitlab.com/gitlab/gitlab-ce rpm 包国内下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/ ubuntu 国内下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/ 2.下载安装gitlab 需事先下载安装包,准备一台4G内存服务器。 #这里事先从清华源下载最新版gitlab #内....

Longhorn云原生存储

Longhorn云原生存储

一、Longhorn基础介绍 官方github:https://github.com/longhorn/longhorn 官方网站:https://longhorn.io Longhorn是一个轻量级、可靠且功能强大的分布式块存储系统,适用于 Kubernetes。使用容器和微服务实现分布式块存储。Longhorn 为每个块储存设备卷创建一个专用的存储控制器,并在存储在多个节点上的多个副本之间同步复制该卷。存储控制器和副本本身是使用 Kubernetes 编排的。Longhorn 是免费的开源软件。它最初由Rancher Labs开发,现在作为云原生计算基金会的孵化项目进行开发。 Longhorn 支持以下架构: AMD64 ARM64(实验性) 使用Longhorn,您可以: 使用 Longhorn 卷作为 Kubernetes 集群中分布式有状态应用程序的持久存储 将您的块存储分区为 Longhorn 卷,以便您可以在有或没有云提供商的情况下使用 Kubernetes 卷。 跨多个节点和数据中心复制块存储以提高可用性 将备份数据存储在外部存储(如 NFS 或 AWS S3)中....

生而为人