最新版k8s 1.25版本安装

news2024/11/25 4:56:54

简介

     

  Kubernetes(k8s)是自动化容器操作的开源平台。这些容器操作包括:部署、调度和节点集群间扩展。

具体功能:

  • 自动化容器部署和复制。
  • 实时弹性收缩容器规模。
  • 容器编排成组,并提供容器间的负载均衡。

总而言之,k8s可以使我们应用的部署和运维更加方便。

1.关闭selinux

#关闭selinux

sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config
sed -i "s/^SELINUXTYPE=.*/SELINUXTYPE=targeted/g" /etc/selinux/config

#重启虚拟机

reboot

#查看配置结果

getenforce

2.关闭交换分区

#设置开机自动关闭分区

swapoff -a

#设置永久禁用分区,打开/etc/fstab文件注释掉带有swap

sed -i 's/.*swap.*/#&/' /etc/fstab

3. 修改内核参数

#开启网络参数

cat <<EOF > /etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables = 1 
net.bridge.bridge-nf-call-iptables = 1 
net.ipv4.ip_forward = 1 
EOF

#手动加载所有的配置文件

sysctl --system

2.9 修改主机名

2.10 配置hosts文件

[root@hadoop1 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.8.30   k8s-master
192.168.8.31   k8s-node1
192.168.8.32    k8s-node2

3.docker安装部署(所有节点)

3.1 查看支持哪些docker版本

yum list docker-ce --showduplicates |sort -r

3.2 安装docker社区版

yum -y install docker-ce-20.10.21

3.3 设置开机启动docker

systemctl enable docker && systemctl start docker

3.4 查看docker运行状态

systemctl status docker

3.5 修改docker配置

#设置更多镜像地址

cat > /etc/docker/daemon.json <<EOF{"registry-mirrors": ["https://7mimmp7p.mirror.aliyuncs.com","https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"],"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m"},"storage-driver": "overlay2","storage-opts": ["overlay2.override_kernel_check=true"]}EOF

3.6 重启docker

systemctl daemon-reload && systemctl restart docker

3.7 配置k8s网络

#配置网络echo """vm.swappiness = 0net.bridge.bridge-nf-call-iptables = 1net.ipv4.ip_forward = 1net.bridge.bridge-nf-call-ip6tables = 1""" > /etc/sysctl.conf#加载配置sysctl -p

3.8 开启ipvs

#不开启ipvs将会使用iptables,但是效率低,所以官网推荐需要开通ipvs内核、

cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
ipvs_modules="ip_vs ip_vs_lc ip_vs_wlc ip_vs_rr ip_vs_wrr ip_vs_lblc ip_vs_lblcr ip_vs_dh ip_vs_sh ip_vs_nq ip_vs_sed ip_vs_ftp nf_conntrack"
for kernel_module in \${ipvs_modules}; do
/sbin/modinfo -F filename \${kernel_module} > /dev/null 2>&1
if [ $? -eq 0 ]; then
/sbin/modprobe \${kernel_module}
fi
done
EOF
#修改执行权限并执行
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep ip_vs

3.9 安装cri-docker

Docker通过cri-docker软件与k8s进行整合。

#下载cri-dockerwget https://github.com/Mirantis/cri-dockerd/releases/download/v0.2.6/cri-dockerd-0.2.6-3.el7.x86_64.rpm#安装cri-dockerrpm -ivh cri-dockerd-0.2.6-3.el7.x86_64.rpm#重载沙箱(pause)镜像vi /usr/lib/systemd/system/cri-docker.serviceExecStart=/usr/bin/cri-dockerd --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.8 --container-runtime-endpoint fd://#启动并设置开机重启cri-dockersystemctl start cri-dockersystemctl enable cri-docker

4.k8s安装部署(所有节点)

4.1 安装kubectl、kubelet、kubeadm组件

#指定版本下载

yum install -y kubelet-1.25.0 kubeadm-1.25.0 kubectl-1.25.0

4.2 启动kubelet并设置为开机启动

systemctl enable kubelet

systemctl start kubelet

4.3 主节点部署k8s master(仅主节点)

#初始化k8s集群(cpu核必须大于1)

kubeadm init \
--apiserver-advertise-address=192.168.8.30 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.25.0 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16 \
--cri-socket unix:///var/run/cri-dockerd.sock
# 对于root用户, 直接添加变量即可开始使用集群
if [ `grep -c 'KUBECONFIG' ~/.bash_profile` -eq 0 ]; then
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_profile
fi

4.4 加入k8s集群(仅从节点)

# 这段话是在主节点kubeadm init时复制过来的, 注意添加--cri-socket

kubeadm join 192.168.8.30:6443 --token 74q42i.y5yusgda5ahc6yoh \
    --discovery-token-ca-cert-hash sha256:41ab1d837b133a16d4ef5818719d57e87f93ebe65158888797c705ac89fd848d   --cri-socket unix:///var/run/cri-dockerd.sock

4.3 在主节点查看

#查看k8s集群节点
kubectl get nodes
#查看系统默认pods
kubectl get pods -n kube-system

4.5 安装网络插件calico (仅主节点就行)

Calico网络插件可以实现跨主机间容器通信

#Calico是一个纯三层的数据中心网络方案,是目前Kubernetes主流的网络方案。
#下载YAML:
wget --no-check-certificate https://docs.projectcalico.org/manifests/calico.yaml
#下载完后还需要修改里面定义Pod网络(CALICO_IPV4POOL_CIDR),与前面kubeadm init的 --pod-network-cidr指定的一样。
 

#查看calico是否安装成功

docker images | grep calico

#在master节点执行命令进行calico插件安装

kubectl apply -f calico.yaml

4.6 查看节点状况

#在主节点执行命令看集群是否成功

kubectl get node -o wide

备注:如果status列中的状态都为ready,表明集群安装成功。

5.部署Dashboard(仅主节点)

5.1 部署Dashboard

#部署 Dashboard UI

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml

#设置访问端口,找到 type: ClusterIP 改为 type: NodePort

kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard

.......
kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  type: NodePort
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 30080
  selector:
    k8s-app: kubernetes-dashboard
......
 

#查看端口

kubectl get svc -A |grep kubernetes-dashboard

#访问:https://集群任意IP:端口 进入登录界面

https://192.168.8.30:30080/#/login

使用token登录

5.登录dashboard

5.1 通过令牌访问

创建令牌 

kubectl -n kube-system create token namespace-controller

出现令牌后,复制令牌并将其粘贴到登录屏幕上的Enter令牌字段中 。

5.2 创建访问账号

# 准备一个yaml文件vi dashuser.yamlapiVersion: v1kind: ServiceAccountmetadata:name: admin-usernamespace: kubernetes-dashboard---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata:name: admin-userroleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: cluster-adminsubjects:- kind: ServiceAccountname: admin-usernamespace: kubernetes-dashboard#创建访问账号kubectl apply -f dashuser.yaml

5.4 登录成功

#看到如下界面说明Dashboard部署成功

6.测试k8s集群(仅主节点)

# 创建Nginx容器kubectl create deployment nginx --image=nginx#暴露端口kubectl expose deployment nginx --port=80 --type=NodePort查看podkubectl get pod,svc# 访问地址(http://NodeIP:Port)
http://192.168.80.30:32279/
http://192.168.80.31:32279/

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

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

相关文章

PHP基于thinkphp的教材管理系统#毕业设计

教材是每个学生和学校都必须具备的教学资源之一,它是知识的载体,是学生汲取知识的土壤,好的教材可以做到事半功倍的效果。但是通常情况下教材都是批量进行购买和发放的,为了能够更好的对教材信息进行管理,我们通过PHP语言,thinkphp框架开发了本次的教材管理系统 教材管理系统,…

谷粒学苑_第十一天

要开始做前台部分(用户环境) 之前我们用的后台前端框架是vue-admin-template 这次的前台框架是用的NUXT 轮播图实现 显示课程和老师 redis缓存 NUXT 服务端渲染技术 解压guli_site 在这里我们使用的是成品,页面也基本写好 然后下载依赖: 开始运行: npm rum dev后面…

[附源码]Python计算机毕业设计Django高校车辆管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

力扣(LeetCode)123. 买卖股票的最佳时机 III(C++)

前后缀分解 维护前缀和数组&#xff0c;保存 111~iii 天&#xff0c;买卖一次的最大利润。维护后缀和数组&#xff0c;保存 iii~nnn 天买卖一次的最大利润。枚举所有分界点 iii &#xff0c;买卖两次的最大利润 iii 的前缀和 i\ i i 的后缀和 111~iii 天买卖一次的最大利润 i\…

Mock测试

1、什么是mock测试 Mock 测试就是在测试活动中&#xff0c;对于某些不容易构造或者不容易获取的数据/场景&#xff0c;用一个Mock对象来创建以便测试的测试方法。 2、Mock测试常见场景 &#xff08;1&#xff09;无法控制第三方系统接口的返回&#xff0c;返回的数据不满足要…

Tomcat的安装、在idea中的使用以及创建Web项目

目录Tomcat的安装Tomcat运行Tomcat在idea中的使用创建Web项目最后Tomcat的安装 Tomcat的官网: https://tomcat.apache.org/ 从官网上可以下载对应的版本进行使用。 下载windows64位&#xff0c;版本自行选择。 下载好之后找到压缩包进行解压&#xff0c;注意目录不要有中文且…

MFC文件操作

MFC提供了一个文件操作的基类CFile&#xff0c;这个类提供了一个没有缓存的二进制格式的磁盘输入输出功能。通过他的派生类可以间接的支持文本、文件、内存文件等。 打开文件 通过对CFile类的初始化&#xff0c;即可完成文件的打开 CFile类的其中一个构造函数&#xff1a; …

【论文精读】A Survey on Deep Learning for Named Entity Recognition

A Survey on Deep Learning for Named Entity Recognition前言Abstract1. INTRODUCTION2. BACKGROUND2.1 What is NER?2.2 NER Resources: Datasets and Tools2.3 NER Evaluation Metrics2.3.1 Exact-Match Evaluation2.3.2 Relaxed-Match Evaluation2.4 Traditional Approach…

Docker学习教程

学前准备 &#x1f47f; Linux 基础 &#x1f47f; SpringBoot 基础 文章目录[toc]1. Docker 概述1.1 docker 为什么出现1.2 Docker 容器和虚拟机的不同1.3 Docker 能做什么2. Docker 安装2.1 Docker 的组成3. Docker 命令3-1 安装Nginx3-2 安装mysql3-3 安装java &#xff0c…

八、【React拓展】错误边界

理解 错误边界(Error boundary)&#xff1a;用来捕获后代组件错误&#xff0c;渲染出备用页面 如果你的组件内写了包含子组件&#xff0c;一个子组件内部发生了错误就会导致整个页面挂掉&#xff08;报错&#xff09;&#xff0c;限制这种错误影响其他组件&#xff08;就是限制…

10-18-hive-元数据及其他方式与hive交互

10-hive-元数据及其他方式访问hive&#xff1a; 使用元数据服务的方式访问 Hive (类似将hive提供了一个服务端) 1&#xff09;在hive-site.xml 文件中添加如下配置信息 <!-- 指定存储元数据要连接的地址 --> <property> <name>hive.metastore.uris</nam…

简易的shell实现

这篇文章的内容主要是利用进程的创建&#xff0c;等待&#xff0c;终止&#xff0c;替换。这些知识来实现一个自己的简易shell。 文章目录1. 大致思路2. 基本实现3. 额外拓展3.1 让文件带上颜色3.2 内建命令3.3 添加环境变量1. 大致思路 我们用了这么长的shell&#xff0c;它…

DolphinDB 四大因子库合集

目前市场上常见两种类型的因子库&#xff1a;技术分析类和基本面类。 常用的技术分析因子库包括 TA-Lib、WorldQuant 的101 alpha、通达信的 mytt、国泰君安的191等。 基本面因子方面&#xff0c;美联储高级经济学家 Andrew Chen 及科隆大学教授 Tom Zimmermann 详细整理总结…

Hadoop原理与技术——Linus命令行基本操作

一、实验目的 Hadoop运行在Linux系统上&#xff0c;因此&#xff0c;需要学习实践一些常用的Linux命令。本实验旨在熟悉常用的Linux操作&#xff0c;为顺利开展后续其他实验奠定基础。 二、实验环境 Windows 10 VMware Workstation Pro虚拟机 Hadoop环境 Jdk1.8 三、实验内…

IP-Guard如何判断Windows客户端是否安装成功?

1.在电脑本地打开services.msc 服务页面&#xff0c;找有没有windows helper service服务&#xff0c;该服务的可执行文件的路径中的进程是winrdgv3.exe是客户端进程。 2.cmd输入netstat -an|find "823",从输出的内容上判断是否连接上服务器连&#xff1b; 客户端开放…

Linux基础知识与实操-篇八:定期任务执行与进程任务处理

文章目录例行工作安排单一工作安排循环执行的任务注意事项唤醒停机期间的任务进程任务处理任务管理job control后台执行进程管理进程的执行顺序系统资源查看特殊文件与进程最后例行工作安排 类似于定时任务、系统安排的任务提醒等 一般在任务中&#xff0c;有两个类型&#x…

MR小区搜索(六)cell reselection

微信同步更新欢迎关注同名modem协议笔记 小区选择和小区重选都是idle态行为&#xff0c;小区重选无非是为了让UE驻留在信号状况最好的小区上&#xff0c;以便之后在connected mode获得更好的体验&#xff0c;小区重选的目标小区也要满足S准则&#xff0c;下面就来具体看下小区…

19c pdb克隆单机到rac,日志出现:WARNING报警处理

打开pdb后&#xff0c;警告日志出现 Violations: Type: 2, Count: 1 *************************************************************** WARNING: Pluggable Database PDB3 with pdb id - 3 is altered with errors or warnings. Please look into PDB_PLUG_IN_VIOLATIONS vie…

运算符-12-多学一招原码反码补码,隐式和强制转换,位运算

下面来解释这些东西是怎么来的 原码 例如&#xff1a; 最左边的叫做符号位&#xff0c;0 为正&#xff0c;1 为负&#xff0c;后面的才是具体的数值 在计算机中&#xff0c;一个 0 或者 1 所占的空间叫 bit 中文名叫比特位&#xff0c;八个 bit 就称为一个字节&#xff0c;字…

Java+Swing学生信息管理系统(含源码+论文+答辩PPT等)

该项目采用技术&#xff1a;JDBCAWTSwing集合面向对象编程等相关技术&#xff0c;项目含有源码、文档、配套开发软件、软件安装教程、项目发布教程等 项目功能介绍&#xff1a; 系统管理&#xff1a;用户登录、退出、注册 学校管理&#xff1a;设置学生学校以及联系方式等信息 …