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
如果你觉得文章还不错,请大家点『好看』分享下。你的肯定是我最大的鼓励和支持。
最新文章
- nginx负载均衡基于ip_hash的session粘帖
- Lucene.net应用
- MVVM框架中的一个非常重要的内容:数据双向绑定
- [原创]html5游戏_贪吃蛇
- java设计模式之命令模式
- fibonacci数列从a到b的个数
- python: html
- ASP.NET运行机制原理
- jquery 取值赋值
- ios 应用程序之间的跳转(内置程序的实现)
- Hibernate 系列教程6-双向多对多
- MFC实现红黑砖块
- JS调用函数时候加括号与只写函数名字的区别 fn与fn()的区别
- shiroWeb项目-登陆与退出实现(九)
- iOS 证书, provision profile作用
- odoo开发笔记-- 按钮动作跳转到其他列表视图默认搜索
- <;meta http-equiv=";X-UA-Compatible"; content=";IE=7"; />;意思是将IE8用IE7进行渲染,使网页在IE8下正常
- Mac 下 java环境 maven环境配置
- NOI2010~NOI2018选做
- GLSL 在OpenGL中向shader传递信息【转】
热门文章
- [DBNETLIB][ConnectionOpen(Invalid Instance())] 无效的连接 的解决办法
- select标签操作
- sqlserver CLR sqlserver使用C# dll
- 如何在线更新visual studio installer2017
- elasticdump 方法迁移数据
- Js2WordCloud 词云用法
- CentOS 7 nginx 1.8.1安装
- 深入浅出Git教程【转载】转载
- Core Expression
- 9-Unittest+HTMLTestRunner不能生成报告解决方法