文章目录
1. 环境准备
1.1 主机名解析
在所有节点添加主机名称解析记录
- hosts: k8sserver
tasks:
- name: add k8s servers hosts
lineinfile:
path: /etc/hosts
line: "{
{ item }}"
loop:
- 172.31.4.21 master01
- 172.31.4.24 node01
- 172.31.4.25 node02
- 172.31.4.26 node03
1.2 关闭selinux、关闭防火墙
- name: Disable Selinux
selinux:
state: disabled
- name: Disable Firewalld
systemd:
name: firewalld
state: stopped
enabled: no
1.3 关闭swap,禁止k8s使用swap
- name: off swap
shell:
cmd: swapoff -a && sed -ri 's/.*swap.*/#&/' /etc/fstab
1.4 内核优化
- 加载 br_netfilter 模块
modprobe br_netfilter
- 创建/etc/sysctl.d/k8s.conf 文件,添加如下内容
- name: Load br_netfilter Module
shell:
cmd: modprobe br_netfilter
- name: Enabled net.bridge.bridge-nf-call-ip6tables
sysctl:
name: net.bridge.bridge-nf-call-ip6tables
value: '1'
sysctl_set: yes
- name: Enabled net.bridge.bridge-nf-call-iptables
sysctl:
name: net.bridge.bridge-nf-call-iptables
value: '1'
sysctl_set: yes
- name: Enabled net.ipv4.ip_forward
sysctl:
name: net.ipv4.ip_forward
value: '1'
sysctl_set: yes
- name: Disabled vm.swappiness
sysctl:
name: vm.swappiness
value: '0'
sysctl_set: yes
1.5 安装IPVS
- 为了方便查看ivps规则,需要安装管理工具ipvsadm,在所有节点执行
- name: Install IPVS
yum:
name: "{
{ item }}"
state: present
loop:
- ipset
- ipvsadm
- 加载ipvs模块,在所有节点执行
$ cat ipvs.modules
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_co