博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
k8s集群搭建
阅读量:3915 次
发布时间:2019-05-23

本文共 3533 字,大约阅读时间需要 11 分钟。

本地搭建使用kubeadm

1、机器准备:

3 台机器

1台master节点,2台worker节点	配置要求:	内存:2G或以上	cpu:2核或以上	操作系统:centos7	必须能互相ping通

2、开始安装

(1)更新并安装依赖

三台机器都需要执行

yum -y updateyum install -y conntrack ipvsadm ipset jq sysstat curl iptables libseccomp

(2)安装docker

三台机器都需要执行

1、安装必要的依赖

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

2、设置docker仓库

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

3、【设置要设置一下阿里云镜像加速器】需要填写自己的加速地址

sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{
"registry-mirrors": ["这里写自己的阿里云镜像加速器"]}EOF

4、设置守护重新加载

sudo systemctl daemon-reload

5、安装docker

yum install -y docker-ce-18.09.0 docker-ce-cli-18.09.0 containerd.io

6、启动docker并设置开机自启

sudo systemctl start docker && sudo systemctl enable docker

(3)修改hosts文件

master节点
sudo hostnamectl set-hostname m

vi /etc/hosts将如下自己的ip和添加进去,一定是自己的服务器ip

192.168.233.38 m192.168.233.146 w1192.168.233.145 w2
两个worker节点

在各自worker节点服务器上执行

sudo hostnamectl set-hostname w1sudo hostnamectl set-hostname w2

vi /etc/hosts和主节点相同

192.168.233.38 m192.168.233.146 w1192.168.233.145 w2
使用ping测试一下,

例如在master节点,使用ping w1,

在worker1节点,使用ping w2或ping m

(4)系统基础前提配置

三台机器上都需要执行

1、关闭防火墙

systemctl stop firewalld && systemctl disable firewalld

2、关闭selinux

setenforce 0sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

3、关闭swap

swapoff -ased -i '/swap/s/^\(.*\)$/#\1/g' /etc/fstab

4、配置iptables的ACCEPT规则

iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat && iptables -P FORWARD ACCEPT

5、设置系统参数

cat <
/etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1EOF

sysctl --system

(5)安装kubeadm, kubelet and kubectl

三台机器上都需要执行

1、配置yum源

cat <
/etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=0repo_gpgcheck=0gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpgEOF

2、安装kubeadm&kubelet&kubectl

yum install -y kubectl-1.14.0-0yum install -y kubelet-1.14.0-0yum install -y kubeadm-1.14.0-0

3、docker和k8s设置通一个cgroup,打开daemon.json文件

vi /etc/docker/daemon.json

将如下内容添加进去

"exec-opts": ["native.cgroupdriver=systemd"],

4、重启docker

systemctl restart docker

5、kubelet,这边如果发现输出directory not exist,也说明是没问题的,大家继续往下进行即可

sed -i "s/cgroup-driver=systemd/cgroup-driver=cgroupfs/g" /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

6、设置启动kubelet和开机自启kubelet

systemctl enable kubelet && systemctl start kubelet

拉取k8s所需镜像

三台机器上都需要执行

执行 sh ./kubeadm.sh文件

kube 初始化master节点

主节点上执行

kubeadm init --kubernetes-version=1.14.0 --apiserver-advertise-address=192.168.233.38

如果需要重新选择主节点,执行

kubeadm reset

如果集群已经搭建好需要重新分配集群

需要在集群中每台机器上执行

kubeadm reset

记得保存好执行后的日志信息(一定要保存好,工作节点加入时会使用到,不然需要重置了)

如下信息会在日志中出现,需要在主节点上依次执行

mkdir -p $HOME/.kube  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config  sudo chown $(id -u):$(id -g) $HOME/.kube/config
查看是否启动成功
kubectl get pods -n kube-system
健康检查
curl -k https://localhost:6443/healthz

部署calico网络插件

在主节点上执行

kubectl apply -f https://docs.projectcalico.org/v3.9/manifests/calico.yaml
确认calico是否安装成功
kubectl get pods --all-namespaces -w

将两台工作节点加入带主节点中

两台worker节点上执行

在确认网络插件安装成功并且都成功运行之后
找到主节点初始化的日志文件,找到如下类似信息
再其他两台worker节点中执行即可

kubeadm join 192.168.233.38:6443 --token qgwc9u.xxv95yx7rp3ac13c \    --discovery-token-ca-cert-hash sha256:ceb56de67b5c910519e8bf4ff46316458333d88658c16d952c27e59224c186cc

查看集群状态

kubectl get nodes

如下图就说明安装成功了,正常状态为Ready

在这里插入图片描述

转载地址:http://kwjrn.baihongyu.com/

你可能感兴趣的文章
寻找性能更优秀的动态 Getter 和 Setter 方案
查看>>
跟我一起学.NetCore之EF Core 实战入门,一看就会
查看>>
.NET架构小技巧(8)——优待异常
查看>>
一款基于.NET Core的认证授权解决方案-葫芦藤1.0开源啦
查看>>
寻找性能更优秀的不可变小字典
查看>>
项目开发中经常有一些被嫌弃的小数据,现在全丢给 FastDFS
查看>>
EntityFramework Core上下文实例池原理
查看>>
C# 8: 可变结构体中的只读实例成员
查看>>
11座城市,58个.NET最新岗位速览,内推直通面试官!
查看>>
【招聘(深圳)】华强方特文化科技集团 .NET工程师
查看>>
ASP.NETCore小技巧:使用测试用户中间件
查看>>
.NetCore HttpClient发送请求的时候为什么自动带上了一个RequestId头部?
查看>>
.NET 5 和 C#9 /F#5 一起到来, 向实现 .NET 统一迈出了一大步
查看>>
程序员过关斩将--从未停止过的系统架构设计步伐
查看>>
.NET Core 取消令牌:CancellationToken
查看>>
BCVP开发者说第一期:Destiny.Core.Flow
查看>>
行业思考 | 互联网对传统行业的降维打击
查看>>
简单聊聊C#中lock关键字
查看>>
.NET 5.0正式发布,有什么功能特性(翻译)
查看>>
asp.net core web api之异常
查看>>