Centos7.4 部署kubernetes 1.11.1教程

kubernetes1.11.1部署

  • 10.0.40.214 master1 (etcd)
  • 10.0.40.215 master2 (etcd)
  • 10.0.40.216 master3 (etcd)
  • 10.0.40.217 node1
  • 10.0.40.218 node2

前言

系统版本均为Centos.7.4.x86_64 ,系统建议使用最新版本. ubuntu 16更佳.
master1为主要操作机器, 建议在master1上设置免秘密登录其他机器.
3台master会有3个api server,端口6443,这里使用负载均衡配置lb,负载均衡vip为10.0.40.219,端口6443.
建议提前配置好负载均衡. 配置LB的过程这里不在赘述.

本文参考的文章

https://jicki.me/kubernetes/2018/08/10/kubernetes-1.11.2.html
https://www.kubernetes.org.cn/4291.html
https://www.kubernetes.org.cn/4256.html
https://www.cnblogs.com/zhenyuyaodidiao/p/6237019.html

系统基础环境设置

关闭selinux和firewalld
$ systemctl stop firewalld && systemctl disable firewalld
$ sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/sysconfig/selinux
$ setenforce 0
安装ipvs

在k8s1.11中,proxy新增加了ipvs模式, 相比于iptable模式,ipvs会直接将规则写入内核.
而且比iptable更加好管理. 毕竟大量的iptables规则开起来还是很头疼的.

yum -y install ipset ipvsadm conntrack-tools.x86_64
安装docker

建议安装docker 17.03版本或者更低版本,官方不建议安装更高版本.

$ yum -y install \
https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm \
https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm
# 启动docker
$ systemctl enable docker && systemctl restart docker
配置系统参数
# 建议在fstab里去掉swap
$ swapoff -a
# 开启forward
$ iptables -P FORWARD ACCEPT # 这条千万要记得执行
# 配置转发, 以下内容写入/etc/sysctl.d/k8s.conf
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
vm.swappiness=0
# 写入后执行如下命令
$ sysctl -p /etc/sysctl.d/k8s.conf
# 配置ipvs内核模块, 重启需要重新执行,建议写入启动脚本
$ modprobe ip_vs
$ modprobe ip_vs_rr
$ modprobe ip_vs_wrr
$ modprobe ip_vs_sh
$ modprobe nf_conntrack_ipv4
下载kubectl和kubelet二进制文件
# 下载kubelet和kubectl   
$ export KUBE_URL=https://storage.googleapis.com/kubernetes-release/release/v1.11.1/bin/linux/amd64
$ wget ${
   KUBE_URL}/kubelet -O /usr/local/bin/kubelet
# node节点可以不安装kebectl
$ wget ${
   KUBE_URL}/kubectl -O /usr/local/bin/kubectl
$ chmod +x /usr/local/bin/kube*
下载cni网络二进制文件
$ mkdir -p /opt/cni/bin && cd /opt/cni/bin
$ wget https://github.com/containernetworking/plugins/releases/download/v0.7.1/cni-plugins-amd64-v0.7.1.tgz
$ tar xf cni-plugins-amd64-v0.7.1.tgz
$ rm -f cni-plugins-amd64-v0.7.1.tgz
下载cfssl证书生成器

为了集群内部通信安全, 建议采用证书加密通信

$ export CFSSL_URL=https://pkg.cfssl.org/R1.2
$ wget ${CFSSL_URL}/cfssl_linux-amd64 -O /usr/local/bin/cfssl
$ wget ${CFSSL_URL}/cfssljson_linux-amd64 -O /usr/local/bin/cfssljson
$ chmod +x /usr/local/bin/cfssl*
安装etcd
这里在3台master上安装etcd
$ yum install -y etcd
$ systemctl enable etcd

证书配置(在master1上操作即可)

接下来将会配置证书,是k8s集群搭建中最为繁琐的一步.务必认真操作, 配置错误集群将会无法通信.
有一部分文件需要提前准备好,可以使用我配置好的,参考于网络上的多份教程.
下载地址: 点我 , 解压后进入k8s_file/pki目录

配置etcd证书
$ cd k8s_file/pki
$ export ETCD_DIR=/etc/etcd/ssl
$ mkdir -p ${
   ETCD_DIR}
# 建立etcd CA文件
$ cfssl gencert -initca etcd-ca-csr.json | cfssljson -bare ${
   ETCD_DIR}/etcd-ca

生成etcd凭证

$ cfssl gencert \
  -ca=${
    ETCD_DIR}/etcd-ca.pem \
  -ca-key=${
    ETCD_DIR}/etcd-ca-key.pem \
  -config=ca-config.json \
  -hostname=127.0.0.1,10.0.40.214,10.0.40.215,10.0.40.215 \
  -profile=kubernetes \
  etcd-csr.json | cfssljson -bare ${ETCD_DIR}/etcd

检查一下是否生成了如下文件

$ ls /etc/etcd/ssl/*.pem
etcd-ca-key.pem  etcd-ca.pem  etcd-key.pem  etcd.pem
# 删除不需要的文件
$ rm -f /etc/etcd/ssl/*.csr

将证书文件传到另外两台安装了etcd的master上

$ ssh master2 "mkdir -p /etc/etcd/ssl"
$ scp /etc/etcd/ssl/*.pem master2:/etc/etcd/ssl/
# master3 同理

修改etcd配置文件/etc/etcd/ssl

# name以及ip需要自己根据情况修改
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_WAL_DIR="/var/lib/etcd/wal"
ETCD_LISTEN_PEER_URLS="https://10.0.40.214:2380"
ETCD_LISTEN_CLIENT_URLS="https://10.0.40.214:2379,http://127.0.0.1:2379"
ETCD_NAME="k8s1-master1"
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://10.0.40.214:2380"
ETCD_ADVERTISE_CLIENT_URLS="https://10.0.40.214:2379"
ETCD_INITIAL_CLUSTER="k8s1-master1=https://10.0.40.214:2380,k8s1-master2=https://10.0.40.215:2380,k8s1-master3=https://10.0.40.216:2380"
ETCD_CERT_FILE="/etc/etcd/ssl/etcd.pem"
ETCD_KEY_FILE="/etc/etcd/ssl/etcd-key.pem"
ETCD_CLIENT_CERT_AUTH="true"
ETCD_TRUSTED_CA_FILE="/etc/etcd/ssl/etcd-ca.pem"
ETCD_AUTO_TLS="true"
ETCD_PEER_CERT_FILE="/etc/etcd/ssl/etcd.pem"
ETCD_PEER_KEY_FILE="/etc/etcd/ssl/etcd-key.pem"
ETCD_PEER_CLIENT_CERT_AUTH="true"
ETCD_PEER_TRUSTED_CA_FILE="/etc/etcd/ssl/etcd-ca.pem"
ETCD_PEER_AUTO_TLS="true"

启动etcd集群

# 3台节点都要启动, 第一台启动会卡住,不用在意,它需要至少两台才能正常工作,就行启动别的节点
$ systemctl restart etcd

测试etcd集群是否正常工作.


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值