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

news2024/12/26 9:19:01

使用 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.coloradmin.cn/o/1612990.html

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

相关文章

sublime text的json快捷键

系统 macos 配置 sublime Text->Settings->Key Bindings 效果 可以看到&#xff0c;按&#xff1a;shiftcommandp&#xff0c;会出现快捷键窗口&#xff0c;打pretty&#xff0c;会出现Format JSON&#xff0c;最右侧显示⌘J&#xff0c;说明只需要macos的⌘和J同时按…

目标检测YOLO数据集的三种格式及转换

目标检测YOLO数据集的三种格式 在目标检测领域&#xff0c;YOLO&#xff08;You Only Look Once&#xff09;算法是一个流行的选择。为了训练和测试YOLO模型&#xff0c;需要将数据集格式化为YOLO可以识别的格式。以下是三种常见的YOLO数据集格式及其特点和转换方法。 1. YOL…

https协议的加密方式详解

各位大佬能多多点赞关注评论收藏&#xff0c;球球各位大佬们了&#xff01;&#xff01; &#xff01; 目录 1.为什么要加密&#xff1f; 2.如何加密 1.密钥&#xff08;yue,第四声&#xff09; 2.对称加密 3.非对称加密 4.公证机构 3.总结 1.为什么要加密&#xff1f;…

【机器学习】朴素贝叶斯解决实际问题

之前写过这样一道题&#xff1a; 现在换成使用朴素贝叶斯解决这个问题 首先先了解一下朴素贝叶斯 这是之前课本里的笔记记录&#xff1a; 【机器学习笔记】朴素贝叶斯&#xff08;从先验分布到后验分布&#xff09;-CSDN博客 简单的讲解一下这道题需要的知识点 朴素贝叶斯是…

JVM-垃圾收集算法

前言 在 Java 中&#xff0c;垃圾收集&#xff08;Garbage Collection&#xff09;是一种自动管理内存的机制&#xff0c;它负责在运行时识别和释放不再被程序使用的内存&#xff0c;从而避免内存泄漏和悬空引用问题。本篇文章将介绍三种常见的垃圾收集算法。 标记-清除&…

11.接口自动化学习-Yaml学习

1.配置文件作用 配置文件项目角度&#xff1a; &#xff08;1&#xff09;现成的应用–第三方组件 mysql–数据库–my.conf tomcat–web服务器–server.xml 修改&#xff1a;连接数/端口 redis–缓存服务器–redis.conf 修改配置 jemeter–压测工具–jemeter.properties–修改…

tcp网络编程——2

1.一个服务器只能有一个客户端连接&#xff08;下面代码&#xff09; ​​​​​​​tcp网络编程&#xff08;基础&#xff09;-CSDN博客 2.一个服务器可以有多个客户端连接&#xff08;多线程&#xff09; server端创建多个线程&#xff0c;每个线程与不同的client端建立连…

【Camera Sensor Driver笔记】一、Sensor基本概念

时钟 sensor clock sensor的输入时钟 MCLK 输出时钟&#xff1a; 1. VTPixelClock&#xff1a;会影响sensor内部的帧率、曝光 VTPixelClock(vt_clk)Video Timing Clock, From sensor PLL VTPixelClock Framelengthlines x LinelengthPixelClock x FPS Framelengthlines L…

数据库主从复制

一、主从复制概述 1、介绍&#xff1a; 主从复制是指将主数据库的 DDL 和 DML 操作写入到二进制日志中&#xff0c;将二进制日志传送到从库服务器&#xff0c;然后在从库上对这些日志重新执行&#xff08;重做&#xff09;&#xff0c;从而使得从库和主库的数据保持同步。 M…

复合机器人在磁钢上下料中的应用及其优势分析

复合机器人是一种集成了移动机器人和工业机器人功能的设备&#xff0c;其独特之处在于拥有“手、脚、眼、脑”的综合能力&#xff0c;从而实现了更高的灵活性和操作效率。在磁钢上下料的应用场景中&#xff0c;复合机器人能够发挥显著的优势。 首先&#xff0c;复合机器人可以根…

chrome浏览器查看css样式

样式的查看 1.匹配器为灰色文本&#xff1a; 表示非当前选择器 2.样式有划线标识&#xff1a;CSS属性无效或未知 / 属性值无效 / 被其他属性覆盖的属性 3.属性以浅色文本显示且有感叹号提示&#xff1a;属性虽然有效&#xff0c;但由于CSS逻辑而没有任何影响 转自&#xff1a;…

判断完数(C语言)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int n 0;int i 1;int j 0;int result 1;//提示用户&#xff1b;printf("请输入一个…

Axure如何实现限制选择项数量的交互

大家经常会看到这样的功能设计&#xff1a;可以多选&#xff0c;但是限制多选。比如某招聘网站城市的选择只能选择5个。再选择第6个的时候会提示最多只能选择5项。 这个效果是我们经常会遇到的&#xff0c;在工作中也经常会遇到需要制作这样的效果。今天我们一起来看看&#xf…

Matlab无基础快速上手1(遗传算法框架)

本文用经典遗传算法框架模板&#xff0c;对matlab新手友好&#xff0c;快速上手看懂matlab代码&#xff0c;快速应用实践&#xff0c;源代码在文末给出。 基本原理&#xff1a; 遗传算法&#xff08;Genetic Algorithm&#xff0c;GA&#xff09;是一种受生物学启发的优化算法…

IDEA JAVA项目如何设置JVM参数

问题背景&#xff1a; 有时候项目在本地启动时会报参数引用不到&#xff0c;如果确实找不到在哪里添加的话&#xff0c;我们可以先加JVM参数来暂时解决本地环境的调试。 解决方案&#xff1a; 编辑配置Edit Configurations 选择需要配置的项目&#xff0c;点击Modify options 选…

FileNotFoundError: [Errno 2] No such file or directory: ‘llvm-config‘

查找本地的llvm-config find / -name llvm-config 2>/dev/null 输出 /usr/local/Cellar/llvm/17.0.6_1/bin/llvm-config 执行安装命令 LLVM_CONFIG/usr/local/Cellar/llvm/17.0.6_1/bin/llvm-config pip install llvmlite # 看自己路径在哪

男朋友花费了9万多,供我上大学,现在毕业1w多想分手,怎么办?

大家好&#xff0c;我是YUAN哥&#xff01;今天要跟大家聊聊一个热门话题——爱情与金钱的关系。最近看到一个网友的发帖&#xff0c;她说自己的男朋友供她上了四年大学&#xff0c;现在她找到了好工作&#xff0c;却想分手了。这个问题引起了网友们的热议。 在爱情中&#xff…

overflow(溢出)4个属性值,水平/垂直溢出,文字超出显示省略号的详解

你好&#xff0c;我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端的程序媛。 云桃桃-大专生&#xff0c;一枚程序媛&#xff0c;感谢关注。回复 “前端基础题”&#xff0c;可免费获得前端基础 100 题汇总&#xff0c;回复 “前端工具”&#xff0c;可获取 Web 开发工具合…

基于SpringBoot+Vue钢材销售管理系统的设计与实现

系统介绍 为了更好地发挥本系统的技术优势&#xff0c;根据钢材销售管理系统的需求&#xff0c;本文尝试以B/S经典设计模式中的Spring Boot框架&#xff0c;JAVA语言为基础&#xff0c;通过必要的编码处理、钢材销售管理系统整体框架、功能服务多样化和有效性的高级经验和技术…

[数据结构与算法]-什么是二叉树?

二叉树是一种数据结构&#xff0c;由节点组成&#xff0c;每个节点最多有两个子节点&#xff0c;分别称为左子节点和右子节点。二叉树的每个节点包含一个值&#xff0c;并且左子节点的值小于等于父节点的值&#xff0c;右子节点的值大于等于父节点的值。这个性质使得二叉树在搜…