kubeadm部署Kubernetes集群高可用

kubernetes官网

安装环境

ip Docker Version Kubernetes Version 硬件要求
192.168.1.11(master1) 19.03.8 v1.18.1 内存4G,双核CPU
192.168.1.12(master2) 19.03.8 v1.18.1 内存4G,双核CPU
192.168.1.13(master3) 19.03.8 v1.18.1 内存4G,双核CPU
192.168.1.100(VIP)

Kubernetes使用kube-ovn网络部署集群

kubernetes官网

安装环境

不支持centos8的系统

ip 服务 硬件要求
192.168.1.11(node1) Docker(已安装)、kubernetes 内存4G,双核CPU
192.168.1.12(node2) Docker(已安装)、kubernetes 内存4G,双核CPU
192.168.1.13(node3) Docker(已安装)、kubernetes 内存4G,双核CPU

Kubernetes集群搭建

kubernetes官网

安装环境

不支持centos8的系统(现在已经支持了)

ip 服务 硬件要求
192.168.1.11(node1) Docker(已安装)、kubernetes 内存4G,双核CPU
192.168.1.12(node2) Docker(已安装)、kubernetes 内存4G,双核CPU
192.168.1.13(node3) Docker(已安装)、kubernetes 内存4G,双核CPU

KVM的网络模式

使用VMware做过虚拟机的都知道,有三种网络模式,nat/bridge/host-only,最近公司测试网络,需要用KVM装一个pfsense,对VM的网络也有要求,需要两个网口,还是不同网络模式的(host-only/nat),使用VMware可以做出来,但是KVM就些许麻烦,一个劲儿的在网上找KVM怎么做和VMware一样的网络模式,皇天不负有心人,还是被我找到了。

vim设置自动添加头部注释

作为一个运维在编写自动化脚本时,希望在脚本头部添加自己的作者信息,又或者版权信息,但是每写一个脚本就添加一遍注释,就显得自己很呆,本身工作就是做的自动化,结果还是劳心劳肺。

Shell(五)---if判断语句

在条件测试一文中,通过逻辑测试已经可以通过&&||完成简单的条件判断,并执行相应的操作,但是当需要判断的条件过多时,就会显得逻辑测试的方法的代码复杂,不好理解。而使用if条件语句,就可以让代码结构清晰易懂。

Shell(四)---条件测试

都知道Shell脚本就是命令的集合,这也是脚本最简单易懂的理解。脚本的运行,无非就是想让命令在什么条件下怎么样的执行。如果仅仅是根据命令的集合来完成脚本自动化,就会出现很多的意外的脚本中断。要想让脚本有自己的”思想”。如:在创建目录之前,要知道有没有同名目录,如果同名的情况下,肯定会报错的。

基于Containerd部署Kubernetes

当Kubernetes 1.20开始准备弃用Docker,相信很多人在k8s 1.20版本出现的时候,都听说了即将弃用docker,不过还没有完全弃用,但这也是未来的趋势了。k8s的底层还是容器。

具体使用docker和弃用docker的前因后果我就不多说了,本文只是为了使用docker以外的CRI(Container Runtime Interface)来部署Kubernetes。这里就进行单机部署了。

建议使用CentOS 7.5版本以上,这里以7.6为例,配置好网络,可以访问外网

当弃用docker后,可以直接使用containerd来做CRI

Shell(三)---计划任务

对于运维工作来说,要保证服务7*24的正常运行,但是每个公司都会去分早晚班的执行吗,并不是的。那对于晚上没有运维在的场景下,要去进行业务的维护,应该怎么办,只能加班吗。答案一定是不是的。

Shell(二)---变量

在各种Shell环境中都会用到变量的概念。Shell变量用来存放系统和用户需要使用的特定参数值,通过使用变量,Shell程序能够提供更加灵活的功能,适应性强。

常见的Shell变量的类型包括自定义变量环境变量位置变量预定义变量

下面围绕这四种变量类型来举例

yum下载rpm包

这是我在制作离线化部署项目时,亲自踩得坑,要下载大量rpm包,因为无知,只能从一个干净系统中执行yum -y install来查看依赖项的rpm包有哪些,然后再去复制名字版本去网页中下载。听起来很笨,要是早点觉悟就不止那么麻烦了

yum是提供了这样选项的功能的。

--downloadonly:表示使用yum install的软件包,仅仅下载,并不安装。

--downloaddir:指定将rpm包下载到哪个目录,目录必须存在

Kubernetes的yaml文件使用语法及简单操作(续)

在初学Kubernetes的yaml文件时,很苦恼,到底怎么就找到哪个kind对应哪个apiVersion,曾在本站写过一篇Kubernetes的yaml文件使用语法及简单操作,然而仅仅打算靠着自己慢慢积累将apiVersion对应的kind一一记录下来,甚至也问过很多大佬,怎么才能知道,大佬告诉我用的多了就知道了。这样的回答也是很无奈。可能大佬也还没想过这种问题。

无法wget raw.githubusercontent.com

在我们使用github中的一些文件需要下载时,尤其是使用脚本的时候,希望使用wget可以拿取github中的单个文件,gihub有这个功能,需要访问raw.githubusercontent.com,但是当使用时,会出现如下这样的问题

Kubernetes-Prometheus完备监控系统

郑重其事:时区一定要调整,服务器或者虚拟机时区与浏览器时区不一致,会导致最后监控没有数据

Kubernetes加入集群的TOKEN值过期

当Kubernetes集群的master节点init完成后,会输出join命令,以便用户用来将其他节点加入,如下

kubeadm join 192.168.1.11:6443 --token abcdef.0123456789abcdef \
    --discovery-token-ca-cert-hash sha256:063cf8ade66033addf58f5d1a453aab0b1ec5ff023327bc10156935875baa7ad 

docker加载配置文件重启服务导致pod重启

相信使用过Docker+Kubernetes环境的小伙伴们都知道,当重启docker服务时,Kubernetes集群中的pod也会随之重启。如果是生产环境可怎么办?尽管k8s有高可用,但是会影响调度平衡,以及服务器性能不均衡等不可控因素。最近我一直在想有没有一种方法,可以在不重启docker服务的情况下,加载配置文件。 docker官方是提供了这样的参数的。 https://docs.doc...

关于docker pull使用网络代理的配置

涉及到docker的几个配置文件

/etc/docker/daemon.json # 启动配置文件

/root/.docker/config.json # 启动配置文件

/etc/systemd/system/docker.service # 启动文件





正在载入...
PoweredHexo
HostedAliyun
DNSAliyun
ThemeVolantis
UV
PV
BY-NC-SA 4.0