K8S部署操作手册

Posted by chuwei on November 1, 2018

##00-集群规划和基础参数设定

高可用集群所需节点配置如下: 部署节点——x1 : 运行这份 ansible 脚本的节点 etcd节点——x3 : 注意etcd集群必须是1,3,5,7…奇数个节点 master节点—-x2 : 根据实际集群规模可以增加节点数,需要额外规划一个master VIP(虚地址) lb节点——–x2 : 负载均衡节点两个,安装 haproxy+keepalived node节点——x2 : 真正应用负载的节点,根据需要提升机器配置和增加节点数

hostname 部署节点 etcd节点 master节点 lb节点 node节点
ngari01 40.73.67.242 192.168.10.4
ngari02 192.168.10.5
ngariNode01 192.168.10.6
ngariNode02 192.168.10.7

系统环境

Azure云 ,标准 B2ms (2 vcpu,8 GB 内存)  硬盘256G

CentOS Linux release 7.5.1804 (Core)

Docker version 17.03.2-ce

</div>

部署步骤

1. 在每个节点安装依赖工具

# 文档中脚本默认均以root用户执行
# 安装 epel 源并更新
yum install epel-release -y
yum update
# 安装python
yum install python -y

2. 在部署节点安装ansible

yum install git python-pip -y
# pip安装ansible(国内如果安装太慢可以直接用pip阿里云加速)
#pip install pip --upgrade
#pip install ansible
pip install pip --upgrade -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
pip install --no-cache-dir ansible -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

3. 部署节到各个节点的免秘钥登录(需使用root账号)

ssh-keygen -t rsa -b 2048 回车 回车 回车 ssh-copy-id $IPs #$IPs为所有节点地址包括自身,按照提示输入yes 和root密码

4.在deploy节点编排k8s安装

  • 4.1 下载项目源码
# 方式一:使用git clone
git clone https://github.com/gjmzj/kubeasz.git
mkdir -p /etc/ansible
mv kubeasz/* /etc/ansible

  • 4.2a 下载二进制文件 请从分享的百度云链接,下载解压到/etc/ansible/bin目录。这里以1.12.1为例,tar包已上传附件。
tar zxvf k8s.1-12-1.tar.gz       # 以安装k8s v1.12.1为例
mv bin/* /etc/ansible/bin
4.3 配置集群参数
  • 4.3.1 必要配置:cd /etc/ansible && cp example/hosts.m-masters.example hosts, 对文档的服务定义部分做修改  # 变量 NTP_ENABLED (=yes/no) 设置集群是否安装 chrony 时间同步 [deploy] 192.168.10.4 NTP_ENABLED=yes  # etcd集群请提供如下NODE_NAME,注意etcd集群必须是1,3,5,7...奇数个节点 [etcd] 192.168.10.4 NODE_NAME=etcd1 192.168.10.5 NODE_NAME=etcd2 192.168.10.6 NODE_NAME=etcd3  [kube-master] 192.168.10.4 192.168.10.5  # 负载均衡(目前已支持多于2节点,一般2节点就够了) 安装 haproxy+keepalived [lb] 192.168.10.4 LB_IF="eth0" LB_ROLE=backup # 注意根据实际使用网卡设置 LB_IF变量 192.168.10.5 LB_IF="eth0" LB_ROLE=master  [kube-node] 192.168.10.6 192.168.10.7 # Versions supported: v1.8, v1.9, v1.10, v1.11, v1.12 K8S_VER="v1.12" # Cluster's Master IP, generated by 'keepalived' daemon on a 'lb' node here # 'haproxy' daemon listens on port 8443, directs requests to real apiservers on port 6443 MASTER_IP="192.168.10.5" KUBE_APISERVER="https://:8443"
  • 4.3.2 可选配置,初次使用可以不做修改,详见配置指南
  • 4.3.3 验证ansible 安装:ansible all -m ping 正常能看到节点返回 SUCCESS

5.一步安装

# 一步安装
ansible-playbook 90.setup.yml

</div>