Kubeadm 快速部署kubernetes 1.10.1 — Jevic

Kubeadm 快速部署kubernetes 1.10.1

2018/07/17 Kubernetes

在线测试集群环境(会话时间3小时)

系统环境

IP地址 主机名 Docker 版本 kubernetes 版本
192.168.2.65 k1.master 17.03.1-ce v1.10.1
192.168.2.66 k2.master 17.03.1-ce v1.10.1
192.168.2.67 k3.master 17.03.1-ce v1.10.1

初始化

所有节点执行

[root@k1 ~]# setenforce 0
[root@k1 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disalbe/g' /etc/sysconfig/selinux

[root@k1 ~]# cat >> /etc/security/limits.conf <<EOF
* soft nofile 65536
* hard nofile 65536
* soft nproc unlimited
* hard nproc unlimited
EOF

[root@k1 ~]# swapoff -a

[root@k1 ~]# cat >> /etc/sysctl.conf <<EOF
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
net.ipv4.tcp_tw_recycle=0
vm.swappiness=0
vm.overcommit_memory=1
vm.panic_on_oom=0
fs.inotify.max_user_watches=89100
fs.file-max=52706963
fs.nr_open=52706963
net.ipv6.conf.all.disable_ipv6=1
net.netfilter.nf_conntrack_max=2310720
EOF

[root@k1 ~]# systemctl stop firewalld && systemctl disable firewalld

[root@k1 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

[root@k1 ~]# yum makecache fast
[root@k1 ~]# yum install -y epel-release
[root@k1 ~]# yum install -y conntrack ipvsadm ipset jq sysstat curl iptables libseccomp ntpdate
[root@k1 ~]# ntpdate cn.pool.ntp.org

加载内核模块

# cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
ipvs_modules="ip_vs ip_vs_lc ip_vs_wlc ip_vs_rr ip_vs_wrr ip_vs_lblc ip_vs_lblcr ip_vs_dh ip_vs_sh ip_vs_fo ip_vs_nq ip_vs_sed ip_vs_ftp nf_conntrack_ipv4"
for kernel_module in \${ipvs_modules}; do
    /sbin/modinfo -F filename \${kernel_module} > /dev/null 2>&1
    if [ $? -eq 0 ]; then
        /sbin/modprobe \${kernel_module}
    fi
done
EOF
# chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep ip_vs
ip_vs_ftp              16384  0
ip_vs_sed              16384  0
ip_vs_nq               16384  0
ip_vs_fo               16384  0
ip_vs_sh               16384  0
ip_vs_dh               16384  0
ip_vs_lblcr            16384  0
ip_vs_lblc             16384  0
ip_vs_wrr              16384  0
ip_vs_rr               16384  0
ip_vs_wlc              16384  0
ip_vs_lc               16384  0
ip_vs                 147456  24 ip_vs_lblc,ip_vs_wrr,ip_vs_lc,ip_vs_lblcr,ip_vs_sed,ip_vs_ftp,ip_vs_wlc,ip_vs_rr,ip_vs_dh,ip_vs_sh,ip_vs_fo,ip_vs_nq
nf_nat                 28672  3 ip_vs_ftp,nf_nat_masquerade_ipv4,nf_nat_ipv4
nf_conntrack          106496  7 ip_vs,nf_conntrack_ipv4,nf_conntrack_netlink,nf_nat_masquerade_ipv4,xt_conntrack,nf_nat_ipv4,nf_nat
libcrc32c              16384  3 ip_vs,xfs,dm_persistent_data

Install Docker

[root@k1 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
[root@k1 ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
[root@k1 ~]# yum list docker-ce --showduplicates | sort -r
[root@k1 ~]# yum -y install docker-ce-17.03.1.ce
[root@k1 ~]# systemctl start docker && systemctl stop docker
[root@k1 ~]# cat > /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["https://dlvqhrac.mirror.aliyuncs.com"]
}
EOF
[root@k1 ~]# systemctl daemon-reload
[root@k1 ~]# systemctl start docker

使用官方安装脚本自动安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
阿里云源站
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start

# 注意:
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,你可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ce.repo
#   将 [docker-ce-test] 下方的 enabled=0 修改为 enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
#   Loading mirror speeds from cached hostfile
#   Loaded plugins: branch, fastestmirror, langpacks
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            @docker-ce-stable
#   docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
#   Available Packages
# Step2 : 安装指定版本的Docker-CE: (VERSION 例如上面的 17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]

Kubeadm 组件

  • 配置阿里云 yum 源
[root@k1 ~]# cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
enabled=1
EOF
  • 安装组件
[root@k1 ~]# yum install kubelet kubeadm kubectl

  • 所有节点配置kubectl 开机自启动
systemctl enable kubelet

初始化 Master

  • 镜像
    • 出于不可描述的原因获取镜像会遇到困难
    • 使用开源社区镜像即可详情查看
    • 具体操作细节在此忽略
  • 修改配置
[root@k1 ~]# cat /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--fail-swap-on=false"
KUBE_PROXY_MODE=ipvs,ip_vs,ip_vs_rr,ip_vs_wrr,ip_vs_sh,nf_conntrack_ipv4

  • 初始化
[root@k1 ~]# kubeadm init --kubernetes-version=v1.10.1 --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=192.168.2.65

记录最后的节点初始化信息,添加节点即可 

需要注意的是这里使用了flannel 网络插件所以--pod-network-cidr指定为了flannel默认的网段; 如果此次有更改记得在部署flannel时修改资源清单里面的网络配置!

  • 添加flannel网络插件
    • https://github.com/coreos/flannel

查看集群状态

[root@k1 ~]# kubectl get node
NAME        STATUS   ROLES    AGE     VERSION
k1.master   Ready    master   2d14h   v1.10.1
k2.master   Ready    <none>   2d14h   v1.10.1
k3.master   Ready    <none>   2d14h   v1.10.1

[root@k1 ~]# kubectl get pods -n kube-system
NAME                                   READY   STATUS              RESTARTS   AGE
coredns-64bb9c68cb-g4qw7               1/1     Running             0          4h1m
coredns-64bb9c68cb-pjw7m               1/1     Running             0          4h1m
etcd-k1                                1/1     Running             1          46h
kube-apiserver-k1                      1/1     Running             1          46h
kube-controller-manager-k1             1/1     Running             1          46h
kube-flannel-ds-amd64-b9jf6            1/1     Running             0          4h8m
kube-flannel-ds-amd64-fmtgz            1/1     Running             0          4h8m
kube-flannel-ds-amd64-q4m8h            1/1     Running             0          4h8m
kube-proxy-67jqw                       1/1     Running             1          45h
kube-proxy-6hztx                       1/1     Running             1          46h
kube-proxy-ghvv9                       1/1     Running             1          45h
kube-scheduler-k1                      1/1     Running             1          46h

转载请注明出处,本文采用 CC4.0 协议授权

Search

    Post Directory