KubeSpray部署k8s集群

KubeSpray部署k8s集群

Kubespray Kubernetes incubator 中的项目,目标是提供 Production Ready Kubernetes 部署方案,该项目基础是经过 Ansible Playbook 来定义系统与 Kubernetes 集群部署的任务,具备如下几个特色:node

  1. 能够部署在 AWS, GCE, Azure, OpenStack 以及裸机上.
  2. 部署 High Available Kubernetes 集群.
  3. 可组合性 (Composable),可自行选择 Network Plugin (flannel, calico, canal, weave) 来部署.
  4. 支持多种 Linux distributions(CoreOS, Debian Jessie, Ubuntu 16.04, CentOS/RHEL7).

GitHub地址:https://github.com/kubernetes-sigs/kubespraypython

1、环境准备

1)因此的主机都须要关闭selinux,执行的命令以下:linux

setenforce 0
sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

2)防火墙(可选)和网络设置,全部的主机都执行如下命令:git

systemctl stop firewalld & systemctl disable firewalld
modprobe br_netfilter
echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables
sysctl -w net.ipv4.ip_forward=1

3#设置内核参数github

sudo vim /etc/security/limits.conf
* soft nofile 32768
* hard nofile 65535
* soft nproc 32768
* hadr nproc 65535

4)设置k8s内核参数vim

sudo vim /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_nonlocal_bind = 1
net.ipv4.ip_forward = 1
vm.swappiness=0

5)从新加载生效网络

sudo sysctl --system
sudo sysctl -p

6) 安装 python epel (在Ansible主机上安装并配置好与各node的免秘钥登陆)app

yum install -y epel-release python36 python36-pip git

2、部署k8s集群

1#克隆项目ui

wget https://github.com/kubernetes-sigs/kubespray/archive/v2.12.4.tar.gz

2)# Install dependencies from ``requirements.txt``spa

sudo /usr/bin/pip3.6 install -r requirements.txt

3)# Copy ``inventory/sample`` as ``inventory/mycluster``

cp -rfp inventory/sample inventory/mycluster

4)# Update Ansible inventory file with inventory builder

declare -a IPS=(10.10.1.3 10.10.1.4 10.10.1.5)

CONFIG_FILE=inventory/mycluster/hosts.yaml /usr/bin/python3.6 contrib/inventory_builder/inventory.py ${IPS[@]}

5)# Review and change parameters under ``inventory/mycluster/group_vars``

cat inventory/mycluster/group_vars/all/all.yml

cat inventory/mycluster/group_vars/k8s-cluster/k8s-cluster.yml

6)# Deploy Kubespray with Ansible Playbook - run the playbook as root

# The option `--become` is required, as for example writing SSL keys in /etc/,

# installing packages and interacting with various systemd daemons.

# Without --become the playbook will fail to run!

ansible-playbook -i inventory/mycluster/hosts.yaml  --become --become-user=root cluster.yml

 注意:

一、默认从国外下载镜像由于node须要能上外网。

二、安装须要点时间耐心等待,遇到报错解决后继续安装。

相关文章
相关标签/搜索