本地虚拟机搭建k8s集群完整篇
1.安装前置条件
在开始之前,部署Kubernetes集群机器需要满足以下几个条件:
- 一台或多台机器【本人是三个,一个master,两个node】,操作系统 CentOS7.x-86_x64
- 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB及以上
- 集群中所有机器之间网络互通
- 可以访问外网,需要拉取镜像
- 禁止swap分区
此处提供了安装虚拟机的一篇教程
安装参考链接
https://www.runoob.com/w3cnote/vmware-install-centos7.html
注:以下命令有的是需要在不同的机器去执行,有的是在所有的机器执行,请注意区分
2、安装之后系统的前置要求
2.1 关闭防火墙,三台机器全关闭
systemctl stop firewalld
2.2、关闭selinux,三台机器全关闭
sed -i 's/enforcing/disabled/' /etc/selinux/config
2.3、关闭swap ,三台机器全关闭
swapoff -a
2.4、设置主机名
hostnamectl set-hostname 主机名,三个主机名分别设置成k8s-master,k8s-node1,k8s-node2
2.5、在master添加hosts
cat /etc/hosts
自己的IP k8s-master
自己的IP k8s-node1
自己的IP k8s-node2
2.6 将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
2.7执行以下命令让设置生效
sysctl --system
3、安装docker
3.1 安装docker依赖包
yum install -y yum-utils
3.2因为某些原因可能访问不到国外仓库或者速度较慢,此处设置为阿里的镜像仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.3安装docker服务
yum install docker-ce docker-ce-cli containerd.io -y
3.4启动docker服务
systemctl start docker
3.5查看docker服务是否正常启动成功
systemctl status docker
出现如图则表示docker服务成功启动。
3.6 添加阿里云YUM软件源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
EOF
3.7 安装kubeadm、kubelet和kubectl 由于版本更新频繁 此处指定版本安装
yum install -y kubeadm-1.19.0 kubelet-1.19.0 kubectl-1.19.0
此处执行命令以后如果出现以下两种错误:
错误一:
Error: Package: kubelet-1.19.2-0.x86_64 (kubernetes)
Requires: conntrack
错误二:
Error: Package: kubelet-1.14.2-0.x86_64 (kubernetes)
Requires: kubernetes-cni = 0.7.5
尝试一下解决方案:下载yum源,安装依赖包
cd /etc/yum.repos.d/
wget http://mirrors.aliyun.com/repo/epel-7.repo
wget http://mirrors.aliyun.com/repo/Centos-7.repo
yum install epel-release
yum install conntrack-tools
3.8成功后启动k8s服务
systemctl enable kubelet
注:以上操作在三台机器都需要执行成功
4.在master节点上部署kubetnets 注:该操作只需要在master上面执行
kubeadm init --kubernetes-version=1.19.0 --apiserver-advertise-address=master的ip --image-repository registry.aliyuncs.com/google_containers --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16
如果看到如下successfully,那么恭喜你成功啦
4.1创建文件夹将admin.conf文件 copy到对应的位置
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/configscp -p /etc/kubernetes/admin.conf 【node1 OR node2】:/etc/kubernetes/admin.conf
4.2 接下来将两台node加入到集群中,分别在node1根node2执行刚刚 kubeadm init成功后下面打印的命令:
4.3执行完命令后,在master节点中执行命令查看是否如图:
kubectl get nodes
如上图则表示成功了,如果报错:
The connection to the server localhost:8080 was refused - did you specify the right host or port?
解决方法:
4.3.1:将主节点(master)中的“/etc/kubernetes/admin.conf”文件拷贝到两个node节点相同目录下,如图所示:
4.3.2:配置环境变量
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
4.3.3:让配置立即生效
source ~/.bash_profile
5.安装部署CNI网络插件
5.1:在master机器上执行命令
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
5.2:成功后验证一下
kubectl get pods -n kube-system
如果出现如下则恭喜你再一次成功啦
到此k8s的安装部署基本结束了,剩下的我们来
6 验证该集群是否可用
6.1 在kubenetes集群中创建一个pod 创建nginx
kubectl create deployment nginx --image=nginx
6.2 暴露Nginx端口
kubectl expose deployment nginx --port=80 --type=NodePort
6.3 查看Nginx端口
kubectl get pod,svc
如图所示:31669就是Nginx的访问端口
6.4任意一个节点的ip加上端口访问看是否成功
如上图则表示该集群搭建成功了。
以上的步骤都是我自己在本地实际操作过的,可能又些许借鉴的意义,但是可能你在自己安装过程中可能会遇到各种奇怪的问题,可以自己查找资料解决也可以一起沟通解决。
友情链接:k8s详细教程-调整版/k8s详细教程.md · yooome/LearningNotes - Gitee.com
本地虚拟机搭建k8s集群完整篇相关推荐
- 基于本地虚拟机搭建k8s集群
在学习kubernetes/k8s的时候,需要搭建一个学习环境.可以用官方提供的模拟器,不过由于是模拟器,有些东西和实际还是有区别的.下面通过虚拟机来进行搭建. 创建虚拟机 multipass是ubu ...
- 搭建k8s集群完整流程,云服务器、虚拟机均可参考
一.机器准备 本次搭建k8s集群采用三台云服务器,master节点最好采用2核2G以上的机器,node节点不作要求 二.开始搭建 1.机器 | 角色 | IP | | -- ...
- 在一台物理机上创建3个虚拟机搭建k8s集群(一)
2019年10月7日,参考链接: https://blog.csdn.net/qq_38252499/article/details/99214276 https://blog.csdn.net/cn ...
- 简单快速-虚拟机搭建K8S集群
0>. 虚拟机需要固定IP :etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTO=dhcp 改成: BOOTPROTO= static IPA ...
- 搭建k8s集群几个常用方法
没搭建过,肯定要尝试! kubeadm 1.13就GA了,general availability,表标明广泛使用 kubeadm最大杀手锏是代码放在k8s源码中 kubeadm二进制的子功能分割,可 ...
- 搭建K8s集群(二进制方式)-搭建步骤介绍
使用二进制方式搭建K8S集群 注意 [暂时没有使用二进制方式搭建K8S集群,因此本章节内容不完整... 欢迎小伙伴能补充~] 准备工作 在开始之前,部署Kubernetes集群机器需要满足以下几个条件 ...
- 基于VMWare虚拟机搭建Linux集群
基于VMWare虚拟机搭建Linux集群 1.虚拟机的安装 2.下载CentOS系统 3.虚拟机安装CentOS系统 4.虚拟机和本机文件通信 5.虚拟机网络配置 6.本机物理机下载Xshell连接操 ...
- Linux云计算虚拟化-使用rancher搭建k8s集群并发布电商网站
文章目录 Linux云计算虚拟化-使用Rancher搭建k8s集群并使用lnmp架构发布电商网站 1. Rancher介绍 2. 使用Rancher搭建k8s集群 2.1 实验环境介绍 2.2 在ra ...
- 【云原生-K8s】kubeadm搭建k8s集群
搭建K8s集群[无需科学上网] 官网:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kub ...
最新文章
- angularJs项目实战!04:angularjs的性能问题
- redis安装 linux步骤,【linux安装redis完整步骤】
- java只有值传递_面试官:为什么 Java 中只有值传递?
- android新浪微博sdk登录获取用户名_多账户的统一登录方案
- java中初始化的顺序_Java中 初始化的先后顺序?
- cmd命令行启动、停止IIS,打开iis net start w3svc
- Netty新连接接入与NioSocketChannel分析
- centos6 进入命令行_CentOS6.8设置开机直接进入命令行模式
- click事件在什么时候出发_关于JS 事件冒泡和onclick,click,on()事件触发顺序
- Git学习(一)本地操作
- 笔试编程题常用的一些技巧方法
- 无人机图像的目标检测的学习
- 无锡硕放机场建议改名为金苏机场
- 湖南省益阳市谷歌高清卫星地图下载(百度网盘离线包下载)
- 将DLL注册成COM组件
- android mtk wifi 移植,【搬运】 MTK手机移植ROM及修复部分bug教程(含跨CPU)
- 10、返回当前审批流程图、后续审批按钮
- 【Spring Boot 2.0学习之旅-15】SpringBoot2.0响应式编程
- 软件测试用mac还是windows,为什么越来越多的Mac用户开始爱上Windows?
- linux越狱时手机怎么进入dfu,iPhone12如何进入DFU模式?IPhone12进DFU教程