CentOS 7.6安装Kubernetes v1.15.1

kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新,kubeadm会对集群配置方面的一些实践做调整,通过实验kubeadm可以学习到Kubernetes官方在集群配置上一些新的最佳实践。

最近发布的Kubernetes 1.15中,kubeadm对HA集群的配置已经达到beta可用,说明kubeadm距离生产环境中可用的距离越来越近了。

CentOS7.6安装Kubernetes v1.15.1

Kubernetes集群组件:

etcd 一个高可用的K/V键值对存储和服务发现系统

flannel 实现夸主机的容器网络的通信

kube-apiserver 提供kubernetes集群的API调用

kube-controller-manager 确保集群服务

kube-scheduler 调度容器,分配到Node

kubelet 在Node节点上按照配置文件中定义的容器规格启动容器

kube-proxy 提供网络代理服务

一、环境介绍

主机名   IP地址  
k8s-master   192.168.169.21  
k8s-node1   192.168.169.24  
k8s-node2   192.168.169.25  
k8s-node3   192.168.169.26  

1、操作系统: CensOS7.6

[root@k8s-master ~]# cat /etc/RedHat-release
  CentOS Linux release 7.6.1810 (Core)


2、Kubernetes版本 v1.15.0

kube-apiserver              v1.15.0
    kube-controller-manager    v1.15.0
    kube-proxy                  v1.15.0
    kube-scheduler              v1.15.0
    etcd                        3.3.10
    pause                      3.1
    coredns                    1.3.1


二、准备

2.1系统配置

在安装之前,需要先做如下准备。4台CentOS 7.6主机如下:

升级系统

# yum -y update


配置Host

# cat /etc/hosts
127.0.0.1    localhost
192.168.1.21    k8s-master
192.168.1.24    k8s-node1
192.168.1.25    k8s-node2
192.168.1.26    k8s-node3


如果各个主机启用了防火墙,需要开放Kubernetes各个组件所需要的端口,可以查看Installing kubeadm中的”Check required ports”一节。 这里简单起见在各节点禁用防火墙:

# systemctl stop firewalld
# systemctl disable firewalld


禁用SELINUX:

# setenforce 0
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
#
SELINUX=disabled


创建/etc/sysctl.d/k8s.conf文件,添加如下内容:

net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1


执行命令使修改生效。

# modprobe br_netfilter
# sysctl -p /etc/sysctl.d/k8s.conf


2.2kube-proxy开启ipvs的前置条件

由于ipvs已经加入到了内核的主干,所以为kube-proxy开启ipvs的前提需要加载以下的内核模块:

ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack_ipv4


在所有的Kubernetes节点上执行以下脚本:

# cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
# chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4


上面脚本创建了的/etc/sysconfig/modules/ipvs.modules文件,保证在节点重启后能自动加载所需模块。 使用lsmod | grep -e ip_vs -e nf_conntrack_ipv4命令查看是否已经正确加载所需的内核模块。

接下来还需要确保各个节点上已经安装了ipset软件包

# yum -y install ipset


为了便于查看ipvs的代理规则,最好安装一下管理工具ipvsadm

# yum -y install ipvsadm


如果以上前提条件如果不满足,则即使kube-proxy的配置开启了ipvs模式,也会退回到iptables模式

2.3安装Docker

Kubernetes从1.6开始使用CRI(Container Runtime Interface)容器运行时接口。默认的容器运行时仍然是Docker,使用的是kubelet中内置dockershim CRI实现。

安装docker的yum源:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/4fa3b2c91310e50f22a02fd2a08049ce.html