二. Kubernetes 安装

一. 安装 Kubernetes 前置环境准备阶段

  1. 首先Kubernetes 支持一下两种安装方式
  1. 二进制方式(建议生产环境使用)
  2. kubeadm引导方式(官方推荐)
  1. 准备多台服务器,服务器之间内网互通,并且开放指定端口(需要开发下图端口访问权限,测试学习阶段可以放开所有端口)参考官方文档
    在这里插入图片描述
  2. 所有安装Kubernetes的服务器需要安装docker容器化环境
  3. 每台服务器安装Kubernetes 相关核心组件
  1. 每台服务器都需要安装kubeadm集群安装引导工具(当前基于kubeadm安装,只是一个安装工具,安装完成后也可以卸载掉,)
  2. 每台服务器都需要安装kubelet组件(kubelet具体可以参考该文档)
  3. 每台服务器都需要安装kubect程序员使用的命令行工具
  4. 每台机器安装kubelet以后,其它核心组件都可以通过kubelet使用容器化方式创建安装,官方已经把核心组件做成了镜像,例如apiServer, controllerManager,etcd, kube-proxy等等
  5. 最后由kubeadm引导创建集群
  1. 大致安装流程
  1. 准备N台服务器,内网互通
  2. 服务器中安装Docker容器环境
  3. 服务器安装Kubernetes
  1. 假设是三条服务器安装Kubernetes集群环境,每台服务器上都需要安装kubeadm创建集群的引导工具,kubelet, kubect(操作kubernetes的命令行工具)
  2. 官方已经将Kubernetes所需要的其它组件做成了镜像, 当安装了kubelet以后,其它核心组件由kubelet以容器化的方式安装即可
  3. 然后由kubeadm引导创建集群(安装完成后可以删除)

服务器前置配置

  1. 当前为了方便,安装windows10版本docker,参考文档:1. Docker windows版本安装
  2. docker安装完成后,拉取centos指定版本镜像,运行centos(可以通过docker ui页面操作运行,也可以通过命令运行),在Docker上运行centos

此时整个架构是docker上运行多个centos, 每个centos服务器之间内网互通,并且开放指定端口,每个centos上再安装docker环境,安装kubernetes,多个centos上的kubernetes组合成为一个集群

  1. 为了方便使用,执行命令修改服务器hostname,并同步linux etc下的配置文件(注意不同服务器的hostname不同)
//查看当前linux hostname
# hostname
//修改linux hostname
# hostnamectl set-hostname 自定义hostname名称
  1. 修改完毕后同步linux etc 设置ip映射
    echo “127.0.0.1 $(hostname)” >> /etc/host
  2. 查看etc中hostname与ip映射
vim /etc/hosts

在这里插入图片描述

  1. 关闭selinux (两行命令直接赋值执行即可)
sed -i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0
  1. 关闭 swap分区内存交换:(两行命令直接赋值执行即可)
//临时关闭命令
swapoff -a  
//永久关闭命令
sed -ri 's/.*swap.*/#&/' /etc/fstab 
//执行一下命令查看是否关闭成功,命令执行完毕后Swap中都为0表示成功
free -m


//或执行下方指令关闭swap
echo "vm.swappiness = 0">> /etc/sysctl.conf 
swapoff -a && swapon -a
sysctl -p
  1. 配置桥接流量(此处测试使用,跟生产上有一定区别),防止ipv6是流量统计数据不精确问题
//先执行设置
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

//然后执行设置生效(两个步骤执行下来后ipv6就可以桥接到ipv4上)
sudo sysctl --system

在这里插入图片描述
9. 注意执行上面命令时如果没有安装sudo命令可能会报sudo: command not found异常,先安装sudo

yum -y install sudo

安装docker

1.也可以参考docker安装文档

#移除docker
sudo yum remove docker*
sudo yum install -y yum-utils
#配置docker yum 源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#安装docker 19.03.9
yum install -y docker-ce-3:19.03.9-3.el7.x86_64  docker-ce-cli-3:19.03.9-3.el7.x86_64 containerd.io

#安装docker 19.03.9   docker-ce  19.03.9
yum install -y docker-ce-19.03.9-3  docker-ce-cli-19.03.9 containerd.io

#启动服务
systemctl start docker
systemctl enable docker

#配置加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

二. 安装K8S核心(所有节点都需要安装)

  1. 参考博客
  2. 安装k8s依赖与yum源(下方命令全部复制一次执行,回车)
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
       http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
  1. 防止之前安装过,执行移除kubelet命令
yum remove -y kubelet kubeadm kubectl
  1. 查看可以安装的版本
yum list kubelet --showduplicates | sort -r
  1. 安装kubelet、kubeadm、kubectl 指定版本
yum install -y kubelet-1.21.0 kubeadm-1.21.0 kubectl-1.21.0
  1. 开机启动kubelet
//设置开机启动命令 && 启动命令
systemctl enable kubelet && systemctl start kubelet

k8s所需镜像下载

  1. 首先执行下方命令,查看一个k8s节点安装需要哪些镜像,因为默认是通过国外地址下载的,防止下载失败,获取到需要的镜像后,通过三方例如阿里云等下载这些镜像
kubeadm config images list

在这里插入图片描述

  1. 根据所需镜像封装一个脚本,该脚本的意思是,将这些镜像通过一个地址获取,例如阿里云的(注意配置的这个下载镜像的地址要能拉取到)
  1. images中是k8s需要的镜像列表, docker pull中封装的是这些镜像的下载地址
  2. linux上执行 "vi images.sh"命令,创建images.sh脚本文件,将下方代码复制进去,:wq保存退出
  3. 执行"chmod +x images.sh"命令给创建的脚本文件添加执行权限
  4. 执行"./images.sh"命令, 运行脚本,获取需要的镜像
#!/bin/bash
images=(
  kube-apiserver:v1.21.0
  kube-proxy:v1.21.0
  kube-controller-manager:v1.21.0
  kube-scheduler:v1.21.0
  coredns:v1.8.0
  etcd:3.4.13-0
  pause:3.4.1
)
for imageName in ${images[@]} ; do
    docker pull registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/$imageName
done
  1. 注意1.21.0版本的k8s coredns镜像比较特殊,结合阿里云需要特殊处理,重新打标签
docker tag registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/coredns:v1.8.0 registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/coredns/coredns:v1.8.0
  1. 初始化安装
kubeadm init
  1. 后续还有其他命令,此处不示例了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值