kubernetes(k8s)环境预设

生产环境:

  • 高可用etcd集群,建立3、5或者7个节点
  • 高可用Master
    • kube-apiserver无状态,可多实例
      • 借助于keepalived进行vip流动实现多实例冗余
      • 或在多实例前端通过HAProxy或Nginx反代,并借助于keeplived对代理服务器进行冗余
    • kube-scheduler及kube-controller-manager各自只能有一个活动实例,但可以有多个备用
      • 各自自带leader选举的功能,并且默认处于启动状态
  • 多Node主机,数量越多,冗余能力越强
  • ceph、glusterfs、iSCSI、FC SAN及各种云存储等

主机环境预设:

  1. 借助于NTP服务设定各节点时间精确同步
  2. 通过DNS完成各节点的主机名解析,也可以使用hosts文件进行
  3. 关闭各节点的iptables或者firewall服务,并确保它们禁止随系统启动
  4. 关闭SElinux
  5. 禁用所有的Swap设备
  6. 若要使用ipvs模型的proxy,各节点还需要载入ipvs相关各模块

1. NTP时钟同步

  若节点可以直接访问互联网,直接启动chronyd系统服务,并设定其随系统启动

  $ sudo systemctl start chronyd
  $ sudo systemctl enable chronyd

  不过,建议用户配置本地的时间服务器,节点数量越多时尤其如此。存在可用的本地时间服务器时,修改节点的/etc/chrony.conf配置文件,并将时间服务器指向相应的主机即可,配置格式如下:

  # server CHRONY-SERVER-NAME-OR-IP iburst

 

2. 主机名解析

  处于简化配置步骤的目的,使用host文件进行各节点的解析,文件内容如下:

  127.20.0.2    k8s-master

  127.20.0.3    k8s-node1

  127.20.0.4    k8s-node2

  ...

3. 关闭iptables或firewall

Centos:
$ systemctl stop firewalld $ systemctl disable firewalld $ systemctl stop iptables $ systemctl disable iptables
Ubuntu: $
sudo service ufw disable

 

4. 关闭并禁用SELINUX

  默认ubuntu是没有SElinux。

  Centos若当前启用了SElinux,则需要编辑/etc//selinux/config文件,将SELINUX=enforcing改为SELINUX=disabled

  使用getenforce命令查询当前状态,如果结果不是Disabled,则需要进行禁用。

  临时禁用可以使用setenforce 0  来临时生效

  永久生效需要修改相应的配置文件

 

5. 禁用Swap设备

  # swapoff  -a    #临时禁用

  永久禁用需要修改/etc/fatab,将swap设备注释掉即可

 

 6. 启用ipvs内核模块(可选)

  创建内核模块相关脚本文件/etc/sysconfig/modules/ipvs.modules,设定自动载入的内核模块。文件内容如下:

#!/bin/bash

ipvs_mods_dir="/usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs"
for i in $(ls $ipvs_mods_dir | grep -o "^[^.]*");
do
   /sbin/modinfo -F filename $i &> /dev/null
   if [ $? -eq 0 ];then
   /sbin/modprobe $i
  fi
done

修改文件权限,并手动为当前系统加载内核模块:
# chmod +x /etc/sysconfig/modules/ipvs.modules
# bash /etc/sysconfig/modules/ipvs.modules

   

posted @ 2019-06-17 17:51  阿拉米苏  阅读(404)  评论(0编辑  收藏  举报