云原生学习系列之基础环境准备(单节点安装kubernetes)

一、环境要求

  • 操作系统CentOS 7.x-86_x64

  • 硬件配置:内存2GB或2G+,CPU 2核或CPU 2核+,需要在虚拟机中提前设置好,不然后续会报错

二、系统初始化

1、设置主机名

# 在master节点执行

hostnamectl set-hostname master01

2、配置主机和IP映射,注意IP换成自己的

cat >> /etc/hosts << EOF

192.168.182.127 master01

EOF

3、安装依赖包

yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git

4、设置防火墙为iptables并设置空规则

# 关闭防火墙

systemctl stop firewalld && systemctl disable firewalld

# 清理防火墙规则,设置默认转发策略

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

5、关闭 selinux 和 swap交换分区

# 禁用swap分区

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

# 禁用 selinux

setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

6、配置内核参数,将桥接的IPv4流量传递到iptables的链

# 加载模块

modprobe br_netfilter

cat > /etc/sysctl.d/kubernetes.conf << EOFnet.bridge.bridge-nf-call-iptables=1net.bridge.bridge-nf-call-ip6tables=1net.ipv4.ip_forward=1net.ipv4.tcp_tw_recycle=0vm.swappiness=0vm.overcommit_memory=1vm.panic_on_oom=0fs.inotify.max_user_watches=89100fs.file-max=52706963fs.nr_open=52706963net.ipv6.conf.all.disable_ipv6=1net.netfilter.nf_conntrack_max=2310720EOF

# 重新加载配置

sysctl -p /etc/sysctl.d/kubernetes.conf

7、时间同步

yum install ntpdate -y

ntpdate time.windows.com

8、关闭不需要的服务

systemctl stop postfix && systemctl disable postfix

9、升级linux内核

  • CentOS 7.x 系统自带的 3.10.x 内核存在一些 Bugs,导致运行的 Docker、Kubernetes 不稳定

# 查看内核版本

cat /proc/version

# 升级版本

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

yum --enablerepo=elrepo-kernel install -y kernel-lt

#设置开机从新内核启动(设置如下图版本号)

grub2-set-default 'CentOS Linux (5.4.193-1.el7.elrepo.x86_64) 7 (Core)'

#重启电脑

shutdown -r now

升级成功之后,查看内核版本如下图

至此,所有的准备工作已经完成。

三、Kubeadm安装

1、k8s配置使用ipvs为代理,kube-proxy开启ipvs的前置条件

# 加载模块

modprobe br_netfilter

cat > /etc/sysconfig/modules/ipvs.modules <<EOF

#!/bin/bash

modprobe -- ip_vs

modprobe -- ip_vs_rr

modprobe -- ip_vs_wrr

modprobe -- ip_vs_sh

modprobe -- nf_conntrack

modprobe -- br_netfilter

EOF

# 修改访问权限

chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules

2、配置国内yum源

curl -o /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo

curl -o /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3、安装Docker

# 安装必要的一些系统工具

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

# 添加软件源信息

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

# 更新并安装Docker-ce

yum update -y && yum install -y docker-ce

# 配置daemon(添加 YUM 软件源),注意IP换成自己的

cat > /etc/docker/daemon.json << EOF

{

"registry-mirrors": ["http://hub-mirror.c.163.com"],

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

"log-driver": "json-file",

"log-opts": {

"max-size": "100m"

},

"insecure-registries":["192.168.182.127:6007"]

}

EOF

# 重启docker 服务

systemctl daemon-reload && systemctl restart docker && systemctl enable docker

#查看docker版本

docker --version

4、配置k8s的阿里云yum源

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

5、安装 kubeadm、kubelet 和 kubectl , 每个节点都需要安装

  • Kubelet:运行在cluster所有节点上,负责启动pod和容器

  • Kubeadm:用于初始化cluster的一个工具

  • Kubectl:命令行工具,通过kubectl可以部署和管理应用,查看各种资源,创建,删除和更新组件

# 安装指定版本

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

# 查看kubelet状态,至此,kubelet已经安装完毕。

# 启动 kubelet 服务

systemctl start kubelet && systemctl enable kubelet

此时查看状态像是出错的样子,实际上只是没有初始化集群,只安装了服务,所以会有上述红色提示,不必在意。

# 查看已经安装的版本

kubelet --version

6、初始化主节点(只在master节点上执行),注意IP换成自己的

  • kubernetes-version:K8s版本,与上面安装的一致

  • apiserver-advertise-address:master主机内网IP地址

  • image-repository:指定阿里云镜像仓库地址。由于kubeadm 默认从官网http://k8s.grc.io下载所需镜像,国内无法访问,因此需要指定阿里云镜像仓库地址

  • service-cidr:集群内部虚拟网络,Pod统一访问入口

  • pod-network-cidr: 定义pod网段为:10.244.0.0/16

kubeadm init \

--kubernetes-version=1.23.1 \

--apiserver-advertise-address=192.168.182.127 \

--image-repository registry.aliyuncs.com/google_containers \

--service-cidr=10.96.0.0/12 \

--pod-network-cidr=10.244.0.0/16

如果安装报错,可以通过以下命令查看日志

journalctl -xeu kubelet -l

  • 安装完成,如下图

不过多等一会儿依然可以成功

7、配置Kubectl工具

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

8、查看集群状态

  • 通过以下命令查看集群信息,发现已经有master01节点了,但是状态为:NotReady,原因为未安装flannel插件,如下图

# 查看节点状态

kubectl get node

# 查看system下的pods

kubectl get pods -n kube-system

# 此时查看服务状态

systemctl status kubelet

至此k8s创建完毕。

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

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

相关文章

HTML的简单介绍

文章目录 1. HTML1.1 HTML 基础认识1.2 快速生成代码框架1.3 HTML 基础标签 1. HTML 1.1 HTML 基础认识 什么是HTML呢&#xff1f; HTML叫做超文本标记语言。超文本&#xff1a;例如图片&#xff0c;视频&#xff0c;文本&#xff0c;声音&#xff0c;表格&#xff0c;链接等…

计算机环境安全

操作系统安全----比如windows,linux 安全标识--实体唯一性 windows---主体&#xff1a;账户&#xff0c;计算机&#xff0c;服务 安全标识符SID-Security Identifier 普通用户SID是1000&#xff0c;管理用SID是500 linux---主体&#xff1a;用户&#xff0c;用户组&#xf…

【前端】[vue3] vue-router使用

提示&#xff1a;我这边用的是typeScript语法&#xff0c;所以js文件的后缀都是ts。 安装vue-router&#xff1a; &#xff08;注意&#xff1a;vue2引用vue-router3 vue3才引用vue-router4&#xff09; npm install vue-router4src文件夹下面创建 router/index.ts&#xff08;…

synchronized语法与Before/After模式

synchronized void method(){ ... } synchronized(obj){ ... } 不管是synchronized方法&#xff0c; 还是synchronized代码块&#xff0c; 都可以看做在“{”处获取锁&#xff0c; 在"}"处释放锁。 比较下使用synchronized的代码 与显式处理锁的代码。假设存在一个…

Halcon计算最小外接矩形Smallest_rectangle2

Halcon计算最小外接矩形Smallest_rectangle2 该算子用于求最小外接矩形。该算子的原型如下&#xff1a; smallest _rectangle2 (Regions : : : Row, Column, Phi, Lengthl, Length2)其各参数的含义如下。 参数1&#xff1a;Regions 表示输入的区域。 参数2和3&#xff1a;Row…

[HCTF 2018]Warmup

[HCTF 2018]Warmup wp 进入页面&#xff1a; 查看源码&#xff1a; 发现提示&#xff1a;source.php &#xff0c;直接访问&#xff0c;得到源代码&#xff1a; <?phphighlight_file(__FILE__);class emmm{public static function checkFile(&$page){$whitelist [&qu…

SolidUI Gitee GVP

感谢Gitee&#xff0c;我是一个典型“吃软不吃硬”的人。奖励可以促使我进步&#xff0c;而批评往往不会得到我的重视。 我对开源有自己独特的视角&#xff0c;我只参与那些在我看来高于自身认知水平的项目。 这么多年来&#xff0c;我就像走台阶一样&#xff0c;一步一步参与…

【精通C语言】:深入解析C语言中的while循环

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; C语言详解 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f4d1;前言一、while循环1.1语法1.2 执行过程解析1.3 break1.4 continue &#x1f324;️全篇总结 &…

jquery图形验证码

效果展示 js图形随机验证码&#xff08;表单验证&#xff09; html代码片段 <form class"formwrap"><div class"item"><input type"text" id"code_input" value"" placeholder"请输入验证码"/>…

macOS跨进程通信: FIFO(有名管道) 创建实例

一&#xff1a; 简介 在类linux系统中管道分为有名管道和匿名管道。两者都能单方向的跨进程通信。 匿名管道&#xff08;pipe&#xff09;: 必须是父子进程之间&#xff0c;而且子进程只能由父进程fork() 出来的&#xff0c;才能继承父进程的管道句柄&#xff0c;一般mac 开发…

(05)沉积——“更小、更多”,微细化的关键

01、沉积:“加法工艺” 在前几篇文章,我们一直在借用饼干烘焙过程来形象地说明半导体制程。在上一篇我们说到,为制作巧克力夹心,需通过“刻蚀工艺”挖出饼干的中间部分,然后倒入巧克力糖浆,再盖上一层饼干层。“倒入巧克力糖浆”和“盖上饼干层”的过程在半导体制程中就…

玩转爱斯维尔 LaTeX 模板:定制技巧一网打尽!

简介 关于 LaTeX 小编写过一些推文&#xff1a; 适合撰写课程论文的 LaTeX 模板; LaTeX 常用数学符号汇总; 免费升级 overleaf 高级账户&#xff01;; 如何下载使用期刊的 LaTeX 模板 本文基于常用的 Elsevier 期刊模板&#xff0c;小编分享个人常用的使用技巧&#xff0…

字符串加密-第11届蓝桥杯省赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第29讲。 字符串加密&#…

【一】达梦数据库安装和使用-Windows

达梦数据库安装和使用-Windows 简介&#xff1a; 新能源行业关系到国计民生&#xff0c;保障能源安全的意识不容懈怠&#xff0c;近些年各行各业都在推进数字化进程&#xff0c;能源行业在国家3060双碳目标提出之后更是进行的如火如荼&#xff0c;能源互联网方面在数字化的同时…

Spark集群搭建

Spark集群结构 图 名词解释 Driver 该进程调用 Spark 程序的 main 方法&#xff0c;并且启动 SparkContextCluster Manager 该进程负责和外部集群工具打交道&#xff0c;申请或释放集群资源Worker 该进程是一个守护进程&#xff0c;负责启动和管理 ExecutorExecutor 该进程是一…

「Verilog学习笔记」任意奇数倍时钟分频

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 timescale 1ns/1nsmodule clk_divider#(parameter dividor 5) ( input clk_in,input rst_n,output clk_out );parameter CNT_WIDTH $clog2(dividor - 1) ; reg flag1, f…

西门子PLC联网数据采集:借助HiWoo Box实现高效监控与管理

在工业自动化领域&#xff0c;西门子PLC作为一种广泛应用的控制器&#xff0c;对于工厂的生产线具有至关重要的作用。如何实现西门子PLC的联网数据采集&#xff0c;提高生产效率和管理水平&#xff0c;成为了许多企业的关注焦点。而HiWoo Box作为一款功能强大的工业网关&#x…

Docker安装Centos8系统

引言&#xff1a;最小安装版Centos8系统安装docker软件安装记录 官网安装教程&#xff1a;https://dockerdocs.cn/engine/install/centos/index.html 操作系统镜像版本 CentOS-Stream-8-x86_64-latest-boot.iso 第一步&#xff1a;更新yum yum -y update第二步&#xff1a;…

基于PHP的花店管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的花店管理系统 一 介绍 此花店管理系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。系统角色分为用户和管理员。(附带参考设计文档) 技术栈&#xff1a;phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 …

LeetCode做题总结 15. 三数之和、18. 四数之和 (Java)

不会做&#xff0c;参考了代码随想录和力扣官方题解&#xff0c;对此题进行整理。 X数之和 15. 三数之和代码思路20240103重写错误1错误2Java语言点总结 18. 四数之和代码思路20240104&#xff08;伪&#xff09;错误1 第一次剪枝错误2 第二次剪枝错误3 溢出 15. 三数之和 代码…