CentOS7 安装最新 Kubernetes(v1.16.0)

本文主要记录了,在虚拟机环境下,安装Kubernetes的过程,其中有很多本地踩过的坑,撰写本文,也希望能够帮助到大家,大家不喜勿喷。Talk is cheap,show me the code。

1.安装说明

  • 安装环境 由于博主使用的是mac系统,所以,虚拟机使用的是Parallels Desktop(14.1.3),个人感觉这个是在mac很好用的虚拟机,安装很简单,网上都可以找到教程。

  • 虚拟机系统  CentOS7
  • 安装规划
    • mster节点 1台
    • node节点 1台
  • 虚拟机网络配置 主机能够ping上述虚拟机的任何一台;上述两台机之前需要能够互相ping通,而且需要保证master节点与node节点的IP地址保持不变。虚拟机网络配置这块,本文给不了教程,大家还需要搜索资料。如果是Parallels Desktop虚拟机,采用默认的就好。
  • 安装方法 采用Kubernetes提供的kebuadm进行安装。由于自己手动部署配置,很复杂,本文采用了Kubernetes自带的kubeadm进行安装。

2.安装步骤

​​​​​​2.1安装Docker

# 1. 删除机器上的旧版Docker
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

# 2. 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# 3. 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 4. 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce

# 5.开启Docker服务
sudo service docker start

# 6.添加用户组 配置系统开机启动
  # 添加用户组
  sudo groupadd docker
  sudo usermod -aG docker $USER

  #系统启动
  sudo systemctl enable docker

# 7.安装成功后,可以使用docker version 查看docker的运行情况。

# 8.配置Docker的镜像加速
https://opsx.alibaba.com/mirror?lang=zh-CN

以上的安装步骤,参考阿里云的安装说明,https://yq.aliyun.com/articles/110806。其中也包含其他系统的安装Docker说明。安装成功后,鉴于国内下载镜像速度的原因,也可以配置docker的镜像加速器,具体可参考阿里云的开源镜像市场,https://opsx.alibaba.com/mirror?lang=zh-CN。其中包含很多的源,后面用到k8s的国内源,在上面也可以找到。​​

2.2 安装kubeadm,kubectl,kubelet

在安装之前,主要是针对CentOS系统的一些配置,类似关闭内存共享,防火墙等等。

# 1.关闭swap
 # 临时禁用
 sudo swapoff -a
 # 永久禁用(推荐)先打开对于文件,注释掉swap那一行
 vim /etc/fstab 

# 2.关闭SELinux
 # 临时禁用
 setenforce 0
 # 永久禁用(推荐)
 sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/sysconfig/selinux

# 3.关闭防火墙
 systemctl disable firewalld
 systemctl stop firewalld

# 4.修改网络参数(如果这步不设置,后面安装会有问题)
 cat <<EOF > /etc/sysctl.d/k8s.conf 
 net.bridge.bridge-nf-call-ip6tables = 1 
 net.bridge.bridge-nf-call-iptables = 1 
 EOF

 sysctl --system

# 5.修改国内安装的k8s镜像下载源(如果能够科学上网,可以直接使用google对应的官方安装文档,直接安装)
 cat <<EOF > /etc/yum.repos.d/kubernetes.repo
 [kubernetes]
 name=Kubernetes
 baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
 enabled=1
 gpgcheck=0
 repo_gpgcheck=0
 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg 
 https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
 EOF

 ## 重建yum缓存
 yum clean all 
 yum makecache fast 
 yum -y update

# 6.执行安装
 # 这步执行的时间依赖于你自己的网络,会需要一段时间,采用以下命令会安装最新版本,如果按照指定版本需要带上版本号。如果在这一步指定了版本号,在集群初始化的时候,也必须加上版本号。
 yum install -y kubelet kubeadm kubectl


 # 安装成功后验证
 kubeadm version

 #设置开机启动
 systemctl enable kubelet && systemctl statt kubelet

至此,以上的步骤(包括安装Docker)都必须在master与node节点中执行。

2.3 初始化集群(初始化master)

# 初始化k8s集群 注意命令中的版本号。由于之前安装 kubeadm kubectl kebulet 采用的是最新版本,所以在初始化的时候也必须制定对应的版本号。'--pod-network-cidr=10.244.0.0/16'参数,是由于需要安装fannel网络时,必须指定的。关于fannel网络及安装,大家可以查看相关资料。https://github.com/coreos/flannel/blob/master/Documentation/kubernetes.md。 
# 在初始化成功后,安装日志会打印一段类似于‘kubeadm join 10.211.55.39:6443 --token jh7j30.3e4igzontf4vep3x --discovery-token-ca-cert-hash sha256:ca6086e0594aa2935bc1c6f2152739119c5179ddcdaf3a2bd95ea827c2d3e305’ 的日志,该命令就是node节点加入此集群的命令。
# 初始化成功后,日志还会打印一些叫你执行的sh日志('mkdir -p $HOME/.kube 等等,总共3条'),目的主要是用户的相关操作,直接复制执行即可
kubeadm init --image-repository registry.aliyuncs.com/google_containers -kubernetes-version v1.16.0 --pod-network-cidr=10.244.0.0/16


# 安装fannel 大家可以参考kubeadm git地址:https://github.com/coreos/flannel#flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

此步骤,只需在master节点上执行。等待系统下载对应的镜像后,使用kubectl get pod --all-namespace来查看当前集群中的pod运行情况,待所有的pod处于running状态,及表示master初始化成功。

2.4 将node加入集群

在node节点上,执行上述打印日志的‘kubeadm join .....’ 日志。然后,在maste节点上,执行kubectl get node,查看节点。如果类似于下图,则恭喜你,Kubernetes安装成功!

2.5 node节点ROLES为none处理

在上述node截图中,如果ROLES列为none,则通过打标签来进行修复。其实,该列的实现就是通过标签来实现,不过这个标签比较特殊。如果master节点的ROLES为none,则可为master的节点打上标签node-role.kubernetes.io/master=;如果node节点的ROLES为none,则可为node节点打上标签node-role.kubernetes.io/node=。

总结:

文章主要以实用参考,并没有提供每个步骤执行截图,所以对于新手,可能不太适合。仔细把整个流程首先梳理一遍,然后再动手,可能效果会更好。安装主要痛点就是在下载Kubernetes镜像问题,目前采用国内的阿里云的源,问题不大。不过也会可能出现下载不了的问题,我第一次安装的时候,在执行‘ yum install -y kubelet kubeadm kubectl’进行安装时,就提示下载不了对应的镜像,如果出现这种情况,要么就等阿里云同步成功,要么就使用其他的源。一般稍微等段时间就可以了,我上次是一天后就能下载。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值