Kubernetes集群搭建之系统初始化配置篇
Kubernetes的几种部署方式
1. minikube
Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用。不能用于生产环境。
2. kubeadm
Kubeadm也是一个工具,提供kubeadm init和kubeadm join指令,用于快速部署Kubernetes集群。
3. 二进制包
从官方下载发行版的二进制包,手动部署每个组件,组成Kubernetes集群。
小结:
生产环境中部署Kubernetes集群,只有Kubeadm和二进制包可选,Kubeadm降低部署门槛,但屏蔽了很多细节,遇到问题很难排查。所有本系列使用二进制包部署Kubernetes集群,也是比较推荐大家使用这种方式,虽然手动部署麻烦点,但学习很多工作原理,更有利于后期维护。
Kubernetes的介绍就不过多讲了,请移步官网。
开始部署之前我们还得准备初始化工作,这对于线上环境 这一步是必不可少的。
架构说明
本次系列实战环境由5台服务器组成,为高可靠设计,Etcd 集群,Kubernetes 三主节点,保证集群的高可用性。 ,(建议配置为4C16G)一台镜像仓库节点(建议配置为2C4G),一台应用节点(配置视情况而定),最好每个节点都挂个数据盘给Docker使用。
如下图所示:
安装要求
在所有节点上统一安装 CentOS 7.X x86 64 位(推荐使用 Centos 7.6 ),且没有安装部署 过其它软件。
所有节点均安装 SSH 服务,可用 root 账号通过 SSH 方式登录
版本信息
系统版本 Centos7.6
Kubernetes: v1.13
Etcd: v3.3.12
Flanneld: v0.11.0
Docker: 18.09-ce
Harbor: v1.7.3
这次使用的所需部署包版本都使用的目前最新的或最新稳定版,安装包地址请到公众号内回复【K8s实战】获取
初始化项主要有主机名修改,关闭SELinux及防火墙,limits设置,hosts配置, 服务器时区修改,主机历史命令配置
注意:需要5台都执行
主机名设置
192.168.209.129:$ hostnamectl set-hostname harbor-01192.168.209.130:$ hostnamectl set-hostname master-01192.168.209.131:$ hostnamectl set-hostname master-02192.168.209.132:$ hostnamectl set-hostname master-03192.168.209.133:$ hostnamectl set-hostname node-01
终端断下重连即生效
关闭SELinux及防火墙
$ systemctl status firewalld$ sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config$ sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux$ setenforce 0$ systemctl stop firewalld$ systemctl disable firewalld
limits设置
$ echo "* soft nofile 65536" >> /etc/security/limits.conf$ echo "* hard nofile 65536" >> /etc/security/limits.conf$ echo "* soft noproc 65536" >> /etc/security/limits.conf$ echo "* hard noproc 65536" >> /etc/security/limits.conf
终端断下重连即生效
hosts配置
$ echo "192.168.209.129 harbor-01 hub.test.tech" >> /etc/hosts$ echo "192.168.209.130 master-01" >> /etc/hosts$ echo "192.168.209.131 master-02" >> /etc/hosts$ echo "192.168.209.132 master-03" >> /etc/hosts$ echo "192.168.209.133 node-01" >> /etc/hosts
服务器时区修改
$ timedatectl set-timezone Asia/Shanghai
主机历史命令配置
$ USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`$ HISTFILESIZE=4000 $ HISTSIZE=4000 $ HISTTIMEFORMAT="%F %T ${USER_IP} `whoami` " $ export HISTTIMEFORMAT$ source /etc/profile
Docker环境搭建
使用阿里云源
[root@harbor-01 ~]# cd /etc/yum.repos.d/[root@harbor-01 ~]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# Docker安装:[root@linux-node1 ~]# yum install -y docker-ce# docker仓库地址配置# 设置docker私有仓库地址,需要加入如下, Harbor在下节会讲解[root@harbor-01 ~]#cat >> /etc/docker/daemon.json<< EOF{"insecure-registries": ["hub.test.tech"]}EOF# 启动docker[root@harbor-01 ~]#systemctl start docker
做好各节点ssh互信
$ ssh-keygen$ ssh-copy-id -i root@192.168.209.129$ ssh-copy-id -i root@192.168.209.130$ ssh-copy-id -i root@192.168.209.131$ ssh-copy-id -i root@192.168.209.132$ ssh-copy-id -i root@192.168.209.133
到这一步 初始化操作就结束啦,下一章介绍Harbor的部署使用,敬请期待后续分享,谢谢
END
如果你觉得文章还不错,请大家点『好看』分享下。你的肯定是我最大的鼓励和支持。
Kubernetes集群搭建之系统初始化配置篇的更多相关文章
- Kubernetes集群搭建之企业级环境中基于Harbor搭建自己的私有仓库
搭建背景 企业环境中使用Docker环境,一般出于安全考虑,业务使用的镜像一般不会从第三方公共仓库下载.那么就要引出今天的主题 企业级环境中基于Harbor搭建自己的安全认证仓库 介绍 名称:Harb ...
- Centos 7 kubernetes集群搭建
一.环境准备 Kubernetes支持在物理服务器或虚拟机中运行,本次使用虚拟机准备测试环境,硬件配置信息如表所示: IP地址 节点角色 CPU Memory Hostname 磁盘 192.168. ...
- Kubernetes集群搭建(详细)
kubernetes集群搭建(kubeadm方式) kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具.这个工具能通过两条指令完成一个kubernetes集群的部署: # 创 ...
- kubernetes集群搭建(2):docker私有仓库
kubernetes集群搭建(1):环境准备 中各节点已经安装好了docker,请确认docker已启动并正常运行 1.通过命令启动私库 docker run -d -p 5000:5000 --pr ...
- kubernetes集群EFK日志系统搭建
日志收集架构 Kubernetes 集群本身不提供日志收集的解决方案,一般来说有主要的3种方案来做日志收集: 在节点上运行一个 agent 来收集日志 在 Pod 中包含一个 sidecar 容器来收 ...
- Kubernetes集群搭建之Master配置篇
本次系列使用的所需部署包版本都使用的目前最新的或最新稳定版,安装包地址请到公众号内回复[K8s实战]获取 今天终于到正题了~~ 生成kubernets证书与私钥 1. 制作kubernetes ca证 ...
- Kubernetes集群搭建 ver1.20.5
目录 部署方式 1. 基础环境准备 1.1 基础初始化 1.2 安装docker 2. 部署harbor及haproxy高可用反向代理 2.1 镜像加速配置 2.2 高可用master可配置 3. 初 ...
- [云原生]Kubernetes - 集群搭建(第2章)
目录 一.前置知识点 二.kubeadm部署方式介绍 三.安装要求 四.最终目标 五.准备环境 六.环境初始化 6.1 设置系统主机名以及Hosts文件的相互解析 6.2 安装依赖文件(所有节点) 6 ...
- Docker 与 K8S学习笔记(二十三)—— Kubernetes集群搭建
小伙伴们,好久不见,这几个月实在太忙,所以一直没有更新,今天刚好有空,咱们继续k8s的学习,由于我们后面需要深入学习Pod的调度,所以我们原先使用MiniKube搭建的实验环境就不能满足我们的需求了, ...
随机推荐
- 从阿里巴巴面试题到java类加载机制
首先很经典的阿里巴巴面试题 加上我自己的一些疑惑代码 public class Text { public static int k = 0; public final int k1 = 3; //自 ...
- robotframework+selenium搭配chrome浏览器,web测试案例(搭建篇)
这两天发布版本 做的事情有点多,都没有时间努力学习了,先给自己个差评,今天折腾了一天, 把robotframework 和 selenium 还有appnium 都研究了一下 ,大概有个谱,先说说we ...
- Python Day 13 装饰器
阅读目录 内容回顾 函数嵌套的定义 global.nonlocal关键字 闭包及闭包的运用场景 开放封闭原则 装饰器 一个函数被多次装饰 ##内容回顾 1.函数对象:函数名 => 存放的是函 ...
- SAS 选取部分观测
SAS 对部分观测得处理 在建立新数据集时,有以下两种方式可以从已经存在的数据集中选取观测到新数据集中. ·通过删除不满足条件的观测来保留想要的观测. ·仅接受满足条件的观测. 条件可以由IF语句. ...
- Django模板标签
一.模板标签 1.模板标签是在模板中运用python语言的实现,如for循环,if语句 2.模板标签的运用 2.1在teacher模板下创建students_list模板, 在teacher视图中国创 ...
- 网页手机wap2.0网页的head里加入下面这条元标签,在iPhone的浏览器中页面将以原始大小显示,并不允许缩放
网页手机wap2.0网页的head里加入下面这条元标签,在iPhone的浏览器中页面将以原始大小显示,并不允许缩放. <meta name="viewport" conten ...
- springmvc 整合Controller出现实例化两次问题
启动项目的时候,发现初始化控制层的时候,初始化(使用构造方法打印日志的方式)了两次的情况. 后来检查配置: <context:component-scan base-package=" ...
- 在windows上传一个新的项目到GitHub上
不多说,直接上步骤 1,新建GitHub的账号密码. 2,新建一个项目 点击new repository 3,选择自己项目,填写格式 点击创建 create repository,这时候一个雏形 ...
- Waiting for table metadata lock
出现下图这个现象之前是在一张事务操作频繁地表上,执行了truncate操作. mysql.sock@(none)> select user,host,db,command,time,state, ...
- Windows 注册表 16进制时间转换( Convert Reg_binary Time to a Datetime )
背景: Windows注册表中,存在大量16进制的时间,以 reg_binary存储在注册表中. 例如: 0D 6C A4 4B 37 C5 CE 01 这种值日常报表中需要转换为适合人阅读的格式,实 ...