【Linux】在centos快速搭建K8S1.18集群

使用 kubeadm 创建集群帮助文档

如果您需要以下几点,该工具是很好的选择:kubeadm

  • 一种简单的方法,让你尝试 Kubernetes,可能是第一次。
  • 现有用户自动设置群集并测试其应用程序的一种方式。
  • 其他生态系统和/或安装程序工具中的构建块,具有更大的 范围。

kubeadm 创建k8s1.18集群

  • (一)安装要求
  • (二)准备环境
  • (三)所有节点安装docker/kubeadm/kubelet
    • 1.安装docker
    • 2.添加阿里云YUM软件源
    • 3.kubeadm,kubelet和kubectl
    • 4.克隆k8snode1及k8snode2
    • 5.部署kubeadm master
    • 6.加入kubernets node
    • 7.部署CNI网络插件
    • 8.测试kubernetes集群

(一)安装要求

  • 一台或多台机器,操作系统 CentOS7.x-86_x64

  • 硬件配置:2GB或更多RAM,2个CPU或更多,硬盘40GB或更多
    可以访问外网,可以远程连接,需要拉取镜像,如果服务器不能上网,需要提前下载镜像并导入节点

  • 在快速部署k8s(1.18)集群,采用前期准备操作在k8smaster上面完成,在需要分节点操作后以k8smaster克隆出k8snode1及k8snode2这两个节点。

操作系统IP主机名
CentOS7.x-86_x6410.0.0.50k8s-master
CentOS7.x-86_x6410.0.0.51k8s-node1
CentOS7.x-86_x6410.0.0.51k8s-node2

(二)准备环境

创建一个虚拟机k8smaster进入开启虚拟机:

关闭防火墙 
# systemctl stop firewalld
# systemctl disable firewalld     (关闭防火墙,并设置开机不自启)
关闭SELinux(最好设置永久关闭)
# selinux sed -i 's/enforcing/disabled/' /etc/selinux/config 
临时关闭
# setenforce 0  
关闭swap 
临时
# swapoff -a  
永久
# sed -ri 's/.*swap.*/#&/' /etc/fstab 
  • 根据规划设置主机名:hostnamectl set-hostname (k8smaster)
# hostnamectl set-hostname k8smaster
  • 在master中添加hosts
# cat >> /etc/hosts << EOF
10.0.0.50 k8smaster
10.0.0.51 k8snode1
10.0.0.52 k8snode2
EOF检测:
通过命令:
# ping k8smaster
# ping k8snode1
# ping k8snode2
来测试是否设置好静态名称解析
或者通过指令: 查看cat /etc/hosts  文件里是否有三个指令
  • 将桥接的IPv4流量传递到iptables的链
# cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
生效
# sysctl --system  
时间同步
# yum install ntpdate -y 
# ntpdate time.windows.com

(三)所有节点安装docker/kubeadm/kubelet

1.安装docker

# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo $ yum -y install docker-ce-18.06.1.ce-3.el7 
启动docker
# systemctl enable docker && systemctl start docker 
# docker --version (查看插件版本)
Docker version 18.06.1-ce, build e68fc7a

个人加速器配备,进入阿里云(容器镜像服务 (aliyun.com))镜像加速器选择centos复制加速器地址

在这里插入图片描述

# mkdir -p /etc/docker
# tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://x02mrg1w.mirror.aliyuncs.com"]
}
EOF
# systemctl daemon-reload
# systemctl restart docker

2.添加阿里云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 
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

3.kubeadm,kubelet和kubectl

# yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
# systemctl enable kubelet

4.克隆k8snode1及k8snode2

完成如上操作后就可以克隆出k8snode1及k8snode2这两个节点了!!!

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.部署kubeadm master

在10.0.0.50(master)执行:

# kubeadm init \ --apiserver-advertise-address=10.0.0.50 \ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-version v1.18.0 \ --service-cidr=10.96.0.0/12 \ --pod-network-cidr=10.244.0.0/16

在这里插入图片描述

6.加入kubernets node

在10.0.0.51/52(k8snode1和k8snode2)执行,
向集群添加新节点,执行在kubeadm init输出的kubeadm join命令:

# kubeadm join 10.0.0.50:6443 --token esce21.q6hetwm8si29qxwn

在这里插入图片描述

报错!!!

# echo 1 > /proc/sys/net/ipv4/ip_forward
# kubeadm init
执行完这两个命令后
检测:swap 命令(free -t)
防火墙是否关闭: systemctl status firewalld;
如果没有关闭则输入systemctl stop firewalld;systemctl disable firewalld
输入getenforce  状态为disable(标黄)
sysctl --system

在这里插入图片描述

如果还是执行不成功则使用命令kubeadm reset 清空数据,再进行如上的步骤

默认token有效期为24小时,当过期之后,该token就不可用了。这时就需要重新创建token,操作如下:在master节点操作如下: kubeadm token create --print-join-command

7.部署CNI网络插件

Centos无法访问外网
本质错误是vim /etc/sysconfig/network-scripts/ifcfg-ens33 配置文件中的错误,网关的错误,子网掩码错误则会导致无法ping通内网。

# wget
https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
# kubectl get nodes
NAME	STATUS	ROLES	AGE	VERSION	
k8smaster 	NotReady	master 117m	v1.18.0	

在这里插入图片描述

# kubeadm token create --print-join-command# kubectl apply -fhttps://raw.githubusercontent.com/coreos/fl annel/master/Documentation/kube-flannel.yml namespace/kube-flannel created
clusterrole.rbac.authorization.k8s.io/flannel created
clusterrolebinding.rbac.authorization.k8s.io/flannel created serviceaccount/flannel created
configmap/kube-flannel-cfg created
daemonset.apps/kube-flannel-ds created# kubectl get pods -n kube-system
NAME	READY	STATUS	RESTARTS	AGE	119m	
coredns-7ff77c879f-dfl52	0/1	Pending	
coredns-7ff77c879f-pmqvz	0/1	Pending	119m	
etcd-k8smaster kube-apiserver-k8smaster1/11/1 Runn ing Running120m120m
kube-controller-manager-k8smaster	1/1	Running	120m	
kube-proxy-24kdh	1/1	Running	Running	72s	
kube-proxy-h8p4d	1/1	2m31s	
kube-proxy-w6bfp	1/1	Running	119m	
kube-scheduler-k8smaster	1/1	Running	120m	# curl -fsSL https://addons.kuboard.cn/kuboard/kuboard-static-

在这里插入图片描述

# sh kuboard.sh current ip address is 10.0.0.50 create file /root/kuboard-sa.yaml# kubectl get pods -n kube-system
NAME coredns-7ff77c879f-dfl521/1 READY STATUS Running RESTARTS AGE121m
coredns-7ff77c879f-pmqvz	1/1	Running	121m	
etcd-k8smaster	1/1	Running	121m	
kube-apiserver-k8smaster	1/1	Running	0	121m	
kube-proxy-24kdh kube-controller-manager-k8smaster1/11/1 Running Running121m2m28s
kube-proxy-h8p4d	1/1	Running	Running	3m47s	
kube-proxy-w6bfp	1/1	121m	
kube-scheduler-k8smaster	1/1	Running	121m	# kubectl get nodes
NAME	STATUS	ROLES	AGE	VERSION	
k8smaster	Ready	master	121m	v1.18.0	
k8snode1	Ready	<none>	4m15s	v1.18.0	
k8snode2	Ready	<none>	2m56s	v1.18.0

在这里插入图片描述

查看到各项状态都是run、ready的模式的状态则可以进入:http:\10.0.0.50

用户名: admin
密 码: Kuboard123
新建一个集群

在这里插入图片描述

8.测试kubernetes集群

在Kubernetes集群中创建一个pod,验证是否正常运行:

# kubectl create deployment nginx --image=nginx
# kubectl expose deployment nginx --port=80 --type=NodePort   //检测、验证
# kubectl get pod,svc   //创建pod

在这里插入图片描述

访问网址:http:/10.0.0.51:31696 访问nginx

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/826817.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot集成Sleuth

引入Maven依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-sleuth</artifactId></dependency> 配置yml文件 bootstrap.yml文件增加如下配置 注&#xff1a;这个配置不是必须要&#…

经典机器学习算法——决策树

优质博文&#xff1a;IT-BLOG-CN 树模型是机器学习中最常用的一类模型&#xff0c;包括随机森林、AdaBoost、GBDT&#xff08;XGBoost和Lightgbm&#xff09;等&#xff0c;基本原理都是通过集成弱学习器的即式来进一步提升准确度。这里的弱学习器包括线性模型和决策树模型&…

大sql mysql执行

先把sql 拆分 太大的执行失败 使用 SQLDumpSplitter3 拆分sql 执行拆分的sql 拆分的sql 打开发现很多 ; 开头的空行 替换掉 正则 ^; 修改数据库 my.cnf my,ini 执行可能会提示 [ERR] 2006 - Server has gone away 错误 在 [mysqld] 添加以下几行 wait_timeout2880000 inter…

给sample_gpt 增加 lisa 微调

论文 地址 概述 该论文提出了一种名为LISA的层重要性采样优化算法&#xff0c;旨在解决大规模语言模型训练中的内存瓶颈问题。其主要内容和贡献包括&#xff1a; 通过分析LoRA训练中各层权重范数的分布&#xff0c;发现了权重更新在底层和顶层更为集中的现象&#xff0c;揭…

深入理解计算机网络:从基本原理到实践应用

前言&#xff1a; 计算机网络是现代信息技术的基石&#xff0c;它连接了全球数以亿计的设备&#xff0c;使得信息传输和资源共享成为可能。本文将从计算机网络的基本原理出发&#xff0c;深入探讨其关键技术&#xff0c;并分享一些实践应用的经验。 一、计算机网络的基本原理 1…

上位机工作感想-从C#到Qt的转变-1

0.前言 接触Qt开发也有一年多的时间了&#xff0c;还记得去年初从杭州回合肥时&#xff0c;刚来公司面临的几个问题&#xff1a; 1.C#转上位机的迷茫2.新公司管理模式的差异3.试用期的各种紧急任务。 当时也是加班加点学习C和Qt的基础知识&#xff0c;做了两个考核项目后&am…

Centos 7部署sysbench测试Opengauss/MogDB性能

适配环境 操作系统版本&#xff1a;Red Hat Enterprise Linux Server release 7.9 (Maipo) 数据库版本&#xff1a;MogDB 5.0.3 mogdb快速安装 1、获取PTK $ curl --proto https --tlsv1.2 -sSf https://cdn-mogdb.enmotech.com/ptk/install.sh | sh 2、生成config.yaml $ ptk …

解决Mac使用Vscode无法调用外部终端

前言 今天遇到一个很奇怪的问题&#xff0c;之前好好的用Vscode还能调用外部终端&#xff0c;怎么今天不行了&#xff1f;问题出在哪里呢&#xff1f;请听我娓娓道来。 检查配置文件 我查看了一下配置文件&#xff0c;发现配置文件都是调用外部控制台&#xff0c;没毛病啊。 …

【MySQL】脏读,幻读,不可重复读

脏读、幻读、不可重复读 一、脏读 二、幻读 三、不可重复读 四、脏读、幻读、不可重复读的区别 一、脏读 脏读主要发生在隔离级别很低的事务之间&#xff0c;就比如隔离级别设为Read Uncommitted,也就是读为提交。当我们有多个数据库并发的访问一张表的时候&#xff0c;就…

在 Apache Sedona 中处理空间栅格数据

栅格数据是一种从远处表示地球表面和大气的地理空间数据,通常使用卫星或航空传感器。它是一种基于网格的数据结构,其中网格中的每个单元或像素代表地球表面的特定位置。这些像素可以存储各种类型的信息,例如海拔、温度、土地覆盖、降水量或与该位置相关的任何其他连续或分类…

【AI开发:音频】二、GPT-SoVITS使用方法和过程中出现的问题(GPU版)

1.FileNotFoundError: [Errno 2] No such file or directory: logs/guanshenxxx/2-name2text-0.txt 这个问题中包含了两个&#xff1a; 第一个&#xff1a;No module named pyopenjtalk 我的电脑出现的就是这个 解决&#xff1a;pip install pyopenjtalk 第二个&#xff1a…

快速排序题目SelectK问题(力扣75.颜色分类、力扣215.数组中的第K个最大元素、面试题17.14最小K个数)

力扣75.颜色分类 给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums &#xff0c;原地对它们进行排序&#xff0c;使得相同颜色的元素相邻&#xff0c;并按照红色、白色、蓝色顺序排列。 我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 必须在不使用库内置的 sor…

安卓手机APP开发__媒体开发部分__网络栈

安卓手机APP开发__媒体开发部分__网络栈 目录 概述 配置ExoPlayer来使用一个特定的网络栈 支持的网络栈 Cronet OkHttp 安卓内嵌的网络栈 其它的网络栈

常用渗透测试checklist

该渗透测试checklist包含以下几个模块&#xff1a; 测试大类、测试项、威胁等级、漏洞描述、修复方案 一、认证与授权类 1.密码明文传输 威胁等级&#xff1a;低危 漏洞描述&#xff1a;密码明文传输一般存在于web网站登录页面&#xff0c;用户名或者密码采用了明文传输&am…

从零开始的vscode配置及安装rust教程

配置vscode的rust环境 下载安装vscodemac 环境1. 下载安装rust2. 配置 mac vscode环境3. 创建一个测试项目 windows 环境1. 安装c运行环境2. 安装配置rustup3. 配置windows vscode环境4. 创建一个测试项目 下载安装vscode 1.官网应用程序下载 vscode&#xff1a;https://code.v…

注意力机制中多层的作用

1.多层的作用 在注意力机制中&#xff0c;多层的作用通常指的是将注意力机制堆叠在多个层上&#xff0c;这在深度学习模型中被称为“深度”或“多层”注意力网络。这种多层结构的作用和实现过程如下&#xff1a; 1. **逐层抽象**&#xff1a;每一层都可以捕捉到输入数据的不同…

4.21算法

目录 leetcode49:字母异位词分组 题目 示例 解题思路 代码实现 leetcode349:两个数组的交集 题目 示例 解题思路 代码实现 leetcode49:字母异位词分组 题目 给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词…

在ubuntu20.04下迁移anaconda的目录,试验不行后,换成软连接

一、原因 随着不断的搭建不同的算法环境&#xff0c;原本在固态硬盘上安装的anaconda上占用空间越来越多。导致可用的固态硬盘空间越来越少&#xff0c;又因安装的环境太多&#xff0c;重新搭建比较费时费力。有没有直接将当前已经搭建好环境的anaconda 迁移到另外的目录呢&…

SAP 销售业务中免费货物的会计核算

此博文主要介绍SAP销售业务中免费货物解决方案中&#xff0c;免费货物的会计核算。如果需要进一步了解SAP SD 销售与分销业务中&#xff0c;免费货物的标准解决方案概览&#xff0c;可先了解本博客博文&#xff1a;SAP销售与分销中的免费货物解决方案相关文章&#xff1a; htt…

Python 全栈安全(一)

原文&#xff1a;annas-archive.org/md5/712ab41a4ed6036d0e8214d788514d6b 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 前言 序言 多年前&#xff0c;我在亚马逊搜索了一本基于 Python 的应用程序安全书。我以为会有多本书可供选择。已经有了很多其他主题的 Pyt…