当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
对于运维工作来说,要保证服务7*24的正常运行,但是每个公司都会去分早晚班的执行吗,并不是的。那对于晚上没有运维在的场景下,要去进行业务的维护,应该怎么办,只能加班吗。答案一定是不是的。
在各种Shell环境中都会用到变量的概念。Shell变量用来存放系统和用户需要使用的特定参数值,通过使用变量,Shell程序能够提供更加灵活的功能,适应性强。
常见的Shell变量的类型包括 系统变量,位置变量,预定义变量,自定义变量
下面围绕这四种变量类型来举例
这是我在制作离线化部署项目时,亲自踩得坑,要下载大量rpm包,因为无知,只能从一个干净系统中执行yum -y install
来查看依赖项的rpm包有哪些,然后再去复制名字版本去网页中下载。听起来很笨,要是早点觉悟就不止那么麻烦了
yum是提供了这样选项的功能的。
--downloadonly
:表示使用yum install的软件包,仅仅下载,并不安装。
--downloaddir
:指定将rpm包下载到哪个目录,目录必须存在
在初学Kubernetes的yaml文件时,很苦恼,到底怎么就找到哪个kind
对应哪个apiVersion
,曾在本站写过一篇Kubernetes的yaml文件使用语法及简单操作,然而仅仅打算靠着自己慢慢积累将apiVersion
对应的kind
一一记录下来,甚至也问过很多大佬,怎么才能知道,大佬告诉我用的多了就知道了。这样的回答也是很无奈。可能大佬也还没想过这种问题。
在我们使用github
中的一些文件需要下载时,尤其是使用脚本的时候,希望使用wget可以拿取github中的单个文件,gihub有这个功能,需要访问raw.githubusercontent.com
,但是当使用时,会出现如下这样的问题
本文参考:腾讯云云计算技术专栏-kubernetes系列教程(二十)prometheus提供完备监控系统
郑重其事:时区一定要调整,服务器或者虚拟机时区与浏览器时区不一致,会导致最后监控没有数据
当Kubernetes集群的master节点init完成后,会输出join命令,以便用户用来将其他节点加入,如下
kubeadm join 192.168.1.11:6443 --token abcdef.0123456789abcdef \
--discovery-token-ca-cert-hash sha256:063cf8ade66033addf58f5d1a453aab0b1ec5ff023327bc10156935875baa7ad
安装环境
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) |
涉及到docker的几个配置文件
/etc/docker/daemon.json # 启动配置文件
/root/.docker/config.json # 启动配置文件
/etc/systemd/system/docker.service # 启动文件
开始接触Kubernetes的技术人员都知道,如果要在Kubernetes集群中进行部署应用,需要去自己手动去写yaml文件来启动pod,每个应用可能会需要不止一两种的资源类型,如:service/deployment/pod/PV/PVC等等,使得在Kubernetes集群中部署应用很繁琐,要写很多的yaml文件,也成了新一代运维的掉发新方法
OpenShiftRedHat公司基于开源的云平台,是平台即服务(Paas),是一个开源容器平台,是一个基于主流的容器技术Docker和Kubernetes构建的云平台。底层以Docker作为容器引擎驱动,以Kubernetes作为容器编排引擎组件,并提供了开发语言,中间件,DevOps自动化流程工具和web console用户界面等元素,提供了一套完整的基于容器的应用平台。