centos7 通过kubeadm安装Kubernetes 1.14.3 集群

2 篇文章 0 订阅
2 篇文章 0 订阅

本系列文章:

1、centos7 通过kubeadm安装Kubernetes 1.14.3 集群

2、centos7 基于Kubernetes 安装dashboard


目录

准备条件:

1.修改hostname

2.关闭CentOS7自带的防火墙服务

3.关闭seLinux

4.禁用交换分区(临时)

 5.设置代理(临时)

6.检查服务器内核版本

7.更新yum

8.安装docker

8.1.添加yum源

8.2.可以查看所有仓库中所有docker版本,并选择特定版本安装

8.3.安装docker

8.4.启动并加入开机启动

8.5.验证安装是否成功

8.6.设置上网代理

8.7.测试docker是否能够正常使用

9.时间校对(三台机器都做时间校对)

10.安装k8s组件

10.1.配置国内的repo源:

10.2.修改网络配置:

10.3.安装k8s包:

10.4.完成后启动kubelet服务:

11. 初始化master节点

11.1.查看kubectl的版本信息:

11.2.初始化集群:

12.安装 flannel网络

12.1.然后创建flannel:

13.添加工作节点


准备条件:

准备3台centos7的服务器,其内核版本高于 3.10即最低不能低于3.10(不然docker装不了)

1.修改hostname

分别更改Hostname为 master、node1、node2

分别修改每台服务器的hostname:

#vim /etc/hostname

master

node1

node2

将下面的添加到每个服务器中

# vim /etc/hosts

193.xxx.xx.167 master

193.xxx.xx.58 node1

193.xxx.xx.59 node2

#roboot重启机器生效

2.关闭CentOS7自带的防火墙服务

# service firewalld stop    (临时关闭)

# systemctl disable firewalld   (设为开机,不启动)

#systemctl status firewalld    查看防火墙的状态

#systemctl status  iptables     查看iptables状态

3.关闭seLinux

修改/etc/selinux/config 文件

将SELINUX=enforcing改为SELINUX=disabled

重启机器即可生效

查看SELinux状态:

 # sestatus

4.禁用交换分区(临时)

查看交换分区状态,如果swap数值全部为0,则表示已经禁用。

# free -h

 如果没有为0就执行下面的命令:

# swapoff -a

 5.设置代理(临时)

当你的服务器连不了外界的网时,才需要设置。不然不需要!

# export http_proxy=http://xx.xxx.129.21:8080

# export https_proxy=http://xx.xxx.129.21:8080

 当服务器重启时,需要重新执行

6.检查服务器内核版本

Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的

CentOS 版本是否支持 Docker。

通过 uname -r 命令查看你当前的内核版本

 # uname –r

7.更新yum

系统初始化安装(所有主机)-选择【最小化安装】,然后yum update,升级到最新版本

# yum -y install epel-release

# yum update

-----------------------------------------------

报错:Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again

解决方案:

打开/etc/yum.repos.d/epel.repo,将

[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch

修改为

[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch

再清理源,重新安装

  1. # yum clean all
  2. # yum update

----------------------------------------------------

8.安装docker

每台服务器都需要装!!!

  • 卸载旧版本(如果安装过旧版本的话)
# yum remove docker  docker-common docker-selinux docker-engine
  • 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
# sudo yum install -y yum-utils device-mapper-persistent-data lvm2

8.1.添加yum源

# sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

注:docker的官方镜像由于在国外有些rpm下载不了,所以用阿里的镜像。

另外,安装之前执行yum clean all命令,以防缓存中版本冲突。

8.2.可以查看所有仓库中所有docker版本,并选择特定版本安装

# yum list docker-ce --showduplicates | sort -r

8.3.安装docker

# sudo yum install docker-ce docker-ce-cli containerd.io  #默认安装最新版

或者要选择安装某个版本:

# sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

8.4.启动并加入开机启动

# sudo systemctl start docker

# sudo systemctl enable docker

8.5.验证安装是否成功

(有client和service两部分表示docker安装启动都成功了)

# docker version

表明安装成功!

由于默认镜像仓库在国外下载很慢,经常会断

通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

#sudo mkdir -p /etc/docker
#sudo tee /etc/docker/daemon.json <<-'EOF'

{

  "registry-mirrors": ["https://qqnn8qm9.mirror.aliyuncs.com"]

}

EOF

 重启docker使其生效

#sudo systemctl daemon-reload

#sudo systemctl restart docker

8.6.设置上网代理

如果服务器需要代理才能联网,docker也要配置相应的代理。没有的话,请忽略

# mkdir -p /etc/systemd/system/docker.service.d
#vim /etc/systemd/system/docker.service.d/http-proxy.conf

写入以下内容:

[Service]

Environment="HTTP_PROXY=http://xxx.xxx.129.xx:8080" "NO_PROXY=localhost,127.0.0.1"

$ vim /etc/systemd/system/docker.service.d/https-proxy.conf

写入以下内容:

[Service]

Environment="HTTPS_PROXY=http://xx.xxx.xxx.xx:8080" "NO_PROXY=localhost,127.0.0.1"

 重启使生效:

# systemctl daemon-reload

# systemctl restart docker

# systemctl show --property=Environment docker

8.7.测试docker是否能够正常使用

docker run hello-world

表明成功

9.时间校对(三台机器都做时间校对)

依次执行即可

#yum install ntp

#systemctl start ntpd

#systemctl enable ntpd



#ntpdate ntp1.aliyun.com

#hwclock -w

10.安装k8s组件

每台服务器都需要进行以下操作

10.1.配置国内的repo源:

#cat >> /etc/yum.repos.d/kubernetes.repo <<EOF 

[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

10.2.修改网络配置:

##修改内核两个参数(这两个是参数是防止应用部署在centos系统情况下由于iptables被绕过而导致的路由错误)

简单的说就是使流过网桥的流量也进入iptables/netfilter框架中:

# cat <<EOF >  /etc/sysctl.d/k8s.conf

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

EOF

修改完成后执行sysctl --system使其生效

确认并保证输出的都是1

# cat /proc/sys/net/bridge/bridge-nf-call-ip6tables

1

# cat /proc/sys/net/bridge/bridge-nf-call-iptables

1

10.3.安装k8s:

# yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

10.4.完成后启动kubelet服务:

# systemctl enable kubelet.service
# systemctl start kubelet.service

查看状态
# systemctl status kubelet.service
K8s未初始化,kubelet是启动不起来

11. 初始化master节点

11.1.查看kubectl的版本信息:

$ kubectl version

 

 

11.2.初始化集群:

对master服务器进行操作:

法1:

#kubeadm init --kubernetes-version=1.14.3 --apiserver-advertise-address=本机IP地址(即master节点的地址) --image-repository registry.aliyuncs.com/google_containers --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16

1.14.3是你kubectl的版本

-image-repository 指定镜像仓库地址,默认的仓库在国外,可能导致镜像下载出问题

记录好这段,以后会经常用到:

kubeadm join xxx.xxx.xx.167:6443 --token abcdef.0123456789abcdef \

    --discovery-token-ca-cert-hash sha256:321b8c219272c09c228762f650b9e2a79e7987                                                                                                                                                             107a90729223e7e1cxxxd043b2

法2:

如果网络ok,使用法1的方法安装不会存在问题。但是国内可能一些镜像无法下载,可以使用阿里云的docker hub镜像进行安装。

首先输出kubeadm默认配置:

#kubeadm config print init-defaults > kubeadm-init.yaml

将其中:

imageRepository修改成 registry.cnhangzhou.aliyuncs.com/google_containers

serviceSubnet部分设置成10.244.0.0/16,也就是--pod-network-cidr=10.244.0.0/16参数。

advertiseAddress: 1.2.3.4

改成193.xxx.xx.167(及本机地址)

然后先进行镜像下载:

#kubeadm config images pull --config kubeadm-init.yaml
最后再使用修改后的配置进行初始化:
#kubeadm init --config kubeadm-init.yaml

即可

下面是一些常用的命令:

  • 重新初始化  #kubeadm reset
  • 检测组件运行是否正常  # kubectl get cs

  • 查看所有节点(集群状态检测)

(注:在master节点上进行如下操作):

[hall@master ~]# kubectl get nodes

NAME            STATUS     ROLES    AGE   VERSION

master   NotReady   master   41m   v1.13.0

复制代码这里master的状态为NotReady是因为还没有进行pod network安装。下面接着讲。

12.安装 flannel网络

下载yml文件:

# curl -O https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml

12.1.然后创建flannel:

# kubectl create -f kube-flannel.yml

完成后可以检查:

# kubectl get nodes

NAME            STATUS   ROLES    AGE    VERSION

master   Ready    master   102d   v1.13.0

复制代码

这时候节点的状态应该是Ready。说明master节点状态正常。

同时也可以查看flannel的pod:

$ kubectl get pods -n kube-system | grep flannel

或者还可以这样获取更详细pod的运行情况:

#kubectl get pod -o wide -n kube-system

13.添加工作节点

确保1-10步骤全部完成。

由于之前服务器node1已经配置过代理,需要将master节点的代理取消

#export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com ,193.xxx.xx.167"

如果没有配代理,请忽略上面

然后执行master节点kubeadm init完成后得到的join命令:

#kubeadm join 193.xx.xx.167:6443 --token rrf32a.9xg5ze3ju19n03ez \

    --discovery-token-ca-cert-hash sha256:b11ac7755be28472425bdedd5aa550751a4592d4583b94e823d7f8d214e2bedd

去master节点执行kubectl get nodes:

发现已经该节点已经注册上来了,时间比较长大概需要10分钟左右,其status才变成Ready

本文就先讲得这了~~

下节将dashboard的安装及使用

参考:

kubernetes 1.13 全新安装指南 - 掘金

kubeadm安装kubernetes 1.14.0 | jkzhao's blog

使用kubeadm reset 重新初始化过程 - -✌+王庭威+✌-

https://note.youdao.com/ynoteshare1/index.html?id=1197d46dd344f8aaaed66c1914a094b0&type=note

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小牛呼噜噜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值