k8s 安装 kubernetes安装教程 虚拟机安装k8s centos7安装k8s kuberadmin安装k8s k8s工具安装 k8s安装前配置参数

news2024/11/26 11:51:12

k8s采用master, node1, node2 。三台虚拟机安装的一主两从,机器已提前安装好docker。下面是机器配置,k8s安装过程,以及出现的问题与解决方法

  虚拟机全部采用静态ip, master 30机器, node1 31机器, node2 32机器

                                       机器ip 192.168.164.30   # master

                                                   192.168.164.31   # node1

                                                   192.168.164.31   # node2

机器配置:

                 2核2g

 k8s安装步骤

1. 关闭防火墙(三节点都配置):

 systemct] stop firewal1d	
 # 永久
 systemct] disable firewal1d 

2.关闭selinux(三台节点都配置):

#永久 选择一个即可,永久删除,毕竟是虚拟机
sed -i 's/enforcing/disabled/'  /etc/selinux/config
setenforce 0 #临时

3.关闭swap(三台节点都配置):

#临时
swapoff -a 

# 永久
sed -ri  's/.*swap.*/#&/'  /etc/fstab

4.设置hostname(三台节点分别配置)

# master节点, 名字随意也可以叫master,与后面的配置 对应即可
hostnamectl  set-hostname  k8smaster

####
#### 注意下面是在其他节点输入命令
####

# node1 节点:
hostnamectl set-hostname k8snode1

#node2 节点
hostnamectl set-hostname k8snode2

5.master节点 添加hosts配置

cat >> /etc/hosts << EOF
192.168.164.30 k8smaster
192.168.164.31 k8snode1
192.168.164.32 k8snode2
EOF

6.将桥接的IPv4流量传递到iptables的链(三台节点都配置):

cat  >  /etc/sysctl.d/k8s.conf  <<  EOF 
net.bridge.bridge-nf-ca11-ip6tables = 1
net.bridge.bridge-nf-ca11-iptables = 1
EOF
#配置生效
sysctl  --system 

7. 虚拟机同步时间(三台节点都配置):

# yum仓库安装插件
yum install  ntpdate -y

#同步
ntpdate time.windows.com

8.yum仓库配置k8s(三台节点都配置):

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

 更新yum(三台都输入):

   yum update -y

9. 安装kuberadmin(三台节点都配置) :

yum install -y  kubelet-1.18.0  kubeadm-1.18.0  kubect1-1.18.0
# systemctl 管理 kubelet
systemctl  enable  kubelet

10. 修改网络配置(三台节点都配置):


#在/etc/sysctl.conf中添加参数:    
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1

# 报错并退出后,执行sysctl -p 时刷新
 sysctl -p

11. 修改网络配置参数(三台节点都配置):

#文件内容为0,表示禁止数据包转发,1表示允许
cat /proc/sys/net/ipv4/ip_forward
# vi编辑参数 0修改为1  允许数据包转发

 12. 加载ip_vs模块

for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done

 13. 清空iptables 规则(不关闭则报错)

iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X

12. master节点配置,启动kubeadm:

# 第一个参数,修改为自己的虚拟机ip,不知道的ifconfig,查看
kubeadm init --apiserver-advertise-address=192.168.164.30 --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

 13. 报错都给找不到报错信息了。查看报错信息修改即可,比如设置:

      /proc/sys/net/bridge中的文件bridge-nf-call-iptables 设置为1 ,再启动上面12的命令

成功如下:

 master 成功信息:

 14. 截图中需要输入的命令,再次配置环境

mkdir -p  $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf  $HOME/.kube/config
sudo chown $(id -u):$(id -g)  $HOME/.kube/config

15.  部署cni网络插件 master节点输入命令:

# cli网络配置   超时之类的就多试几次, 实在不行,就找人下载下来,文件上传到服务器,然后kubectl apply -f 下载地址
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

 16. 成功之后,等待自动安装成功,时间有点长 kubectl get nodes 查看节点是否ready

# 查看是否成功, 成功则全是running
kubectl get pods -n kube-system

      

  查看节点是否ready

 kubectl get nodes 

 16. 安装成功!使用nginx验证:

# 创建nginx
kubectl create deployment nginx --image=nginx


# 查看是否running
kubectl get pods

 

成功后,设置暴露端口:

kubectl expose deployment nginx --port=80 --type=NodePort


# 查看映射
kubectl get pod,svc

k8s安装成功, 测试成功。k8s使用 kubeadm安装成功!

 

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

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

相关文章

【数据结构与算法篇】手撕八大排序算法之快排的非递归实现及递归版本优化(三路划分)

​&#x1f47b;内容专栏&#xff1a; 《数据结构与算法篇》 &#x1f428;本文概括&#xff1a; 利用数据结构栈(Stack)来模拟递归&#xff0c;实现快排的非递归版本&#xff1b;递归版本测试OJ题时&#xff0c;有大量重复元素样例不能通过&#xff0c;导致性能下降&#xff0…

Self-Supervised Learning

Self-Supervised Learning Bert 的数据是 340M parameters 抽象解释&#x1f446; Bert 单个字的预测 把一个字盖住&#xff1a; 1、把一个字替换成特殊字符(MASK)。 2、替换成随机的一个字,进行训练。 next sentence prediction 通过变换两个连起来的句子的顺序&#x…

C. Battle 2023 (ICPC) Jiangxi Provincial Contest -- Official Contest

Problem - C - Codeforces 题目大意&#xff1a;有n堆石子&#xff0c;给出一个数p&#xff0c;A先B后&#xff0c;每个人每次只能取p的幂个石子&#xff08;包括1&#xff09;问A能不能赢 1<n<3e5;1<p<1e18 思路&#xff1a;先递归算出sg函数看看&#xff0c;s…

detour编译问题及导入visual studio

Detours是经过微软认证的一个开源Hook库&#xff0c;Detours在GitHub上&#xff0c;网址为 https://github.com/Microsoft/Detours 注意版本不一样的话也是会出问题的&#xff0c;因为我之前是vs2022的所以之前的detours.lib不能使用&#xff0c;必须用对应版本的x64 Native To…

线性代数的艺术

推荐一本日本网友Kenji Hiranabe写的《线性代数的艺术》。这本书是基于MIT大牛Gilbert Strang教授的《每个人的线性代数》制作的。 虽然《线性代数的艺术》这本书仅仅只有12页的内容&#xff0c;就把线性代数的重点全画完了&#xff0c;清晰明了。 《线性代数的艺术》PDF版本&…

C语言:指针类型的意义

1.指针的类型决定了解引用时访问几个字节 2.指针的类型决定了指针1、-1跳过几个字节 一、指针的类型决定指针解引用时访问几个字节 例如 int 型指针解引用时访问4个字节 char 型指针解引用时访问1个字节 详解代码如下&#xff1a; int b 0x11223344&#xff08;十六进制&…

通过这 5 项 ChatGPT 创新增强您的见解

为什么绝大多数的人还不会使用chatGPT来提高工作效能&#xff1f;根本原因就在还不会循序渐进的发问与chatGPT互动。本文总结了5个独特的chatGPT提示&#xff0c;可以帮助您更好地与Chat GPT进行交流&#xff0c;以获得更清晰的信息、额外的信息和见解。 澄清假设和限制 用5种提…

2023-8-28 n-皇后问题

题目链接&#xff1a;n-皇后问题 第一种搜索顺序 #include <iostream>using namespace std;const int N 20;int n; char g[N][N]; bool row[N], col[N], dg[N], udg[N];void dfs(int x, int y, int s) {if(y n) y 0, x ;if(x n){if(s n){for(int i 0; i < n;…

水源井监控系统整体解决方案

1.1、系统组成水源井远程监控系统主要由监控中心、通信平台、水源井测控终端、现场启动柜设备组成。系统整体结构按功能可划分为采集层、网络层和应用层等三层&#xff0c;水源井测控终端主要实现采集层的功能&#xff0c;数据传输链路主要实现网络层的功能&#xff0c;中心端管…

ModaHub魔搭社区:将图像数据添加至Milvus Cloud向量数据库中

将图像数据添加至向量数据库中 图像分割裁剪完成后,我们就可以将其添加至 Milvus Cloud 向量数据库中了。为了方便上手,本项目中使用了 Milvus Lite 版本,可以在 notebook 中运行 Milvus 实例。接下来,使用 PyMilvus 连接至 Milvus Lite 提供的默认服务器。 这一步骤中,…

python 单向循环(环形)链表

不带头结点的单向循环链表的示意图 循环链表的应用场景【约瑟夫问题】 现假设 n 5&#xff08;一共有 5 个人&#xff09;&#xff0c;k 1&#xff08;从第 1 个人开始报数&#xff09;&#xff0c; m 2&#xff08;数 2 下&#xff09;&#xff0c;则出队编号的序列为&…

文件上传漏洞之条件竞争

这里拿upload-labs的第18关做演示 首先先看代码 $is_upload false; $msg null;if(isset($_POST[submit])){$ext_arr array(jpg,png,gif);$file_name $_FILES[upload_file][name];$temp_file $_FILES[upload_file][tmp_name];$file_ext substr($file_name,strrpos($file_…

如何编译打包OpenSSH 9.4并实现批量升级

1 介绍 openssh 9.4版本已于8月10号发布&#xff0c;安全团队又催着要赶紧升级环境里的ssh版本&#xff0c;本文主要介绍Centos5、Centos6、Centos7下openssh 9.4源码编译rpm包以及批量升级服务器openssh版本的方法。关注公众号后台回复ssh可获取本文相关源码文件。 https://w…

正则的匹配原理以及优化原则

正则之所以能够处理复杂文本&#xff0c;就是因为采用了有穷状态自动机&#xff08;finite automaton&#xff09;。那什么是有穷自动机呢&#xff1f;有穷状态是指一个系统具有有穷个状态&#xff0c;不同的状态代表不同的意义。自动机是指系统可以根据相应的条件&#xff0c;…

朋友圈也可以定时定量发送?

场景1&#xff1a;明天要搞活动&#xff0c;早中晚都得发朋友圈&#xff0c;一天要发3次朋友圈&#xff0c;要在手机上定好3个闹钟&#xff0c;这是一件非常麻烦的事。 场景2&#xff1a;有朋友是房产信息的&#xff0c;每天要发布很多二手房源&#xff0c;手动发圈太耗时间&a…

Eziriz .NET Reactor crack,代码中调用许可系统

Eziriz .NET Reactor crack,代码中调用许可系统 .NET reactor被描述为软件许可程序以及在.NET和程序集框架中编写的应用程序的安全代码。它是非常强大的代码保护以及软件系统的许可。无论用户在为.NET的Microsoft框架编译程序的过程中执行什么&#xff0c;该程序都可以向用户提…

[MyBatis系列⑥]注解开发

&#x1f343;作者简介&#xff1a;准大三本科网络工程专业在读&#xff0c;持续学习Java&#xff0c;努力输出优质文章 ⭐MyBatis系列①&#xff1a;增删改查 ⭐MyBatis系列②&#xff1a;两种Dao开发方式 ⭐MyBatis系列③&#xff1a;动态SQL ⭐MyBatis系列④&#xff1a;核心…

全新版本QStack云管系统3.5.3 附详细安装教程

源码介绍&#xff1a; QStack云管系统3.5.3&#xff0c;全新版本下载安装包详细搭建教程。 涵盖了服务器、云主机、代理IP等多种云产品管理运维和安全存储。 同时&#xff0c;QStack还支持对接运营众多公有云厂商产品资源&#xff0c;满足不同用户的需求。 通过开放API和插…

(java)进程和线程的联系和区别

目录 进程 1.进程具有独立性 ———— 虚拟地址空间 线程 为什么要引入多个线程&#xff1f; 多线程注意点 ⁜⁜总结&#xff1a;线程和进程的区别和联系⁜⁜ 进程 1.进程具有独立性 首先介绍一下 ———— 虚拟地址空间 在这之前还要了解一下 —— “物理内存”…