基于Kubeadm进行kubernetes-1.15.1集群安装部署

一、主机环境预设

1. 主机环境说明
       测试使用的Kubernetes集群有一个Master Node(K8s-Master)和两个Work Nodes(K8s-Node01和K8s-Node02)主机组成,全部是运行于本机VMware上的虚拟机。

Node Hostname IP Address OS CPU RAM
K8s-Master master.sdp.local 192.168.116.130 CentOS 7 4 2G
K8s-Node01 node01.sdp.local 192.168.116.131 CentOS 7 4 2G

2. 初始化主机环境

  • 配置网卡(采用的NAT模式)
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="0534c5b0-3465-42f0-abee-7311c23bfaa5"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.116.130"
NETMASK="255.255.255.0"
GATEWAY="192.168.116.2"
DNS1="192.168.116.2"
DNS2="8.8.8.8"

参考文章:VMware安装Centos7超详细过程(图文)

  • 设置服务器集群同步时间
# 安装chrony时间服务器
yum install -y chrony 
# 启动并加入开机自启动
systemctl enable chronyd
systemctl restart chronyd 
  • 修改/etc/hosts文件,完成各节点DNS域名解析
192.168.116.130 master.sdp.local
192.168.116.131 node01.sdp.local
  • 关闭防火墙或者开启部分端口,禁止随主机启动
systemctl stop firewalld
systemctl disable firewalld
  • 禁用SELinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
  • 桥接设置
    通过sysctl -a | grep bridge查看是否置为1,如果为1不用修改。
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
  • 禁用Swap设备

(1)关闭当前已启用的Swap设备

swapoff -a

(2)后编辑配置文件,注释用于挂载Swap设备的所有行

vi /etc/fstab

基于Kubeadm进行kubernetes-1.15.1集群安装部署_第1张图片

  • 重启虚拟机,查看上述配置是否成功

(1)防火墙状态查询

systemctl status firewalld

在这里插入图片描述
(2)SELinux状态查询

getenforce

在这里插入图片描述
(3)Swap设备是否禁用

free -h

在这里插入图片描述

二、安装docker-ce-18.06.1.ce

1. 安装工具包,缺少这些依赖将无法完成

yum install -y yum-utils device-mapper-persistent-data lvm2

2. 设置远程仓库

cd /etc/yum.repos.d/
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3. 安装 18.06版本

yum install -y docker-ce-18.06.1.ce

4.编辑/usr/lib/systemd/system/docker.service,添加

ExecStartPost=/usr/sbin/iptables -P FORWARD ACCEPT

5. 启动服务并设置开机自启

systemctl daemon-reload
systemctl start docker
systemctl enable docker

三、安装Kubernetes-1.15.1

1. 远程仓库配置(阿里云镜像:https://opsx.alibaba.com/)

/etc/yum.repos.d/目录下,新建kubernetes.repo文件,并添加如下:

[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg

2. 安装kubeadm-1.15.1 kubelet-1.15.1 kubectl-1.15.1

yum install kubeadm-1.15.1 kubelet-1.15.1 kubectl-1.15.1

3. 配置/etc/sysconfig/kubelet,添加

KUBELET_EXTRA_ARGS="--fail-swap-on=false"

4. 下载kubeadm所需相关镜像

(1)首先通过docker,把相关镜像下到本地仓库

    docker pull mirrorgooglecontainers/kube-apiserver:v1.15.1
    docker pull mirrorgooglecontainers/kube-controller-manager:v1.15.1
    docker pull mirrorgooglecontainers/kube-scheduler:v1.15.1
    docker pull mirrorgooglecontainers/kube-proxy:v1.15.1
    docker pull mirrorgooglecontainers/pause:3.1
    docker pull mirrorgooglecontainers/etcd:3.3.10
    docker pull coredns/coredns:1.3.1

(2)镜像打标,将mirrorgooglecontainers前缀,改为k8s.gcr.io

docker tag  mirrorgooglecontainers/kube-apiserver:v1.15.1 k8s.gcr.io/kube-apiserver:v1.15.1
docker tag  mirrorgooglecontainers/kube-scheduler:v1.15.1 k8s.gcr.io/kube-scheduler:v1.15.1
docker tag  mirrorgooglecontainers/kube-controller-manager:v1.15.1 k8s.gcr.io/kube-controller-manager:v1.15.1
docker tag  mirrorgooglecontainers/kube-proxy:v1.15.1 k8s.gcr.io/kube-proxy:v1.15.1
docker tag  mirrorgooglecontainers/etcd:3.3.10 k8s.gcr.io/etcd:3.3.10
docker tag  mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1
docker tag  coredns/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1

(3)删除无用镜像

docker rmi  mirrorgooglecontainers/kube-apiserver:v1.15.1
docker rmi  mirrorgooglecontainers/kube-scheduler:v1.15.1
docker rmi  mirrorgooglecontainers/kube-controller-manager:v1.15.1
docker rmi  mirrorgooglecontainers/kube-proxy:v1.15.1
docker rmi  mirrorgooglecontainers/etcd:3.3.10
docker rmi  mirrorgooglecontainers/pause:3.1
docker rmi  coredns/coredns:1.3.1

(4)查看本地所下载的镜像

docker images

基于Kubeadm进行kubernetes-1.15.1集群安装部署_第2张图片

5. Master初始化(仅Master)

  • 执行初始化操作,kubeadm init --kubernetes-version="v1.15.1" --pod-network-cidr="10.244.0.0/16"
    基于Kubeadm进行kubernetes-1.15.1集群安装部署_第3张图片
    由上图可知,已初始化成功

  • 按照要求执行:

  mkdir -p .kube
  cp -i /etc/kubernetes/admin.conf .kube/config
  chown $(id -u):$(id -g) .kube/config

6. 安装flannel网络插件
(1)首先下载flannel:v0.11.0-amd64镜像

docker pull quay-mirror.qiniu.com/coreos/flannel:v0.11.0-amd64

基于Kubeadm进行kubernetes-1.15.1集群安装部署_第4张图片
(2)执行

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

7. 验证kubectl get nodes
在这里插入图片描述

四、Node节点添加到Master集群

1. 所需镜像如下,并按上述要求安装
基于Kubeadm进行kubernetes-1.15.1集群安装部署_第5张图片
2. 执行kubeadm join

基于Kubeadm进行kubernetes-1.15.1集群安装部署_第6张图片
3. 在Master节点查看

kubectl get nodes

在这里插入图片描述

六、安装dashboard

[k8s]kubernetes安装dashboard步骤

五、总结

初学Kubernetes,首先了解了基础概念,后直接安装。Kubernetes集群太难安装了,所涉及的知识很广,安装过程中遇到的问题也很多,前后安装了三天。如果身边有人指导还好一些,没有的话只能各种google、百度。按照网上的安装教程都不能一次性,总会有些莫名其妙的问题,但大致都差不多,解决问题的过程也是学习的过程,不要气馁啦。贴一下哔哩哔哩上的一个视频,https://www.bilibili.com/video/av44264629/?p=3, 还是很有帮助的。遇到问题可留言,一同解决,我基本把问题都鼓捣了一遍。

你可能感兴趣的:(Kubernetes)