当前位置: 首页 > news >正文

网站管理助手打开是系统参数配置/seo sem是什么意思

网站管理助手打开是系统参数配置,seo sem是什么意思,大同建设网站,手机回收网站做多久官方文档: Installing kubeadm | Kubernetes 切记要关闭防⽕墙、selinux、禁用交换空间, cpu核⼼数⾄少为2 内存4G kubeadm部署k8s⾼可用集群的官方文档: Creating Highly Available Clusters with kubeadm | Kubernetes 你需要在每台…

官方文档:

Installing kubeadm | Kubernetes

切记要关闭防⽕墙、selinux、禁用交换空间,

cpu核⼼数⾄少为2

内存4G

kubeadm部署k8s⾼可用集群的官方文档:

Creating Highly Available Clusters with kubeadm | Kubernetes

你需要在每台机器上安装以下的软件包:

  • kubeadm:用来初始化集群的指令。(每台机器)

    • master 用来初始化集群

    • node节点用来加入集群

  • kubelet:在集群中的每个节点上用来启动 Pod 和容器等。(每个node)

  • kubectl:用来与集群通信的命令行工具。(master)

一、完整安装过程

准备三台机器

192.168.199.200 k8s-master
192.168.199.201 k8s-node1
192.168.199.202 k8s-node2

制作本地解析,修改主机名。相互解析
# vim /etc/hosts
192.168.199.200 k8s-master
192.168.199.201 k8s-node1
192.168.199.202 k8s-node2

所有机器系统配置

1.关闭防⽕墙:

systemctl stop firewalld
systemctl disable firewalld

2.禁用SELinux:

setenforce 0

3.编辑文件/etc/selinux/config,将SELINUX修改为disabled

sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/sysconfig/selinux
SELINUX=disabled

4、注释掉swap分区

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

二、使用kubeadm部署Kubernetes

1、在所有节点安装kubeadm和kubelet、kubectl

首先配置yum源

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[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

提醒:如果下载失败,关闭认证,再次下载

  • kubelet: Kubernetes 的节点代理,负责在每个节点上运行,并确保容器运行在 Pod 中。

  • kubeadm: 是一个命令行工具,用于初始化和管理 Kubernetes 集群。

  • kubectl: 是 Kubernetes 的命令行工具,用于与 Kubernetes 集群进行交互。

  • ipvsadm: 是用于设置、维护和检查 Linux 内核中 IP 虚拟服务器(IPVS)表的用户空间实用程序,IPVS 可以实现 Kubernetes 中的服务负载均衡

2、安装kubelet、kubeadm、kubectl、ipvsadm组件

yum install -y kubelet-1.19.1-0.x86_64 kubeadm-1.19.1-0.x86_64 kubectl-1.19.1-0.x86_64 ipvsadm

加载ipvs相关内核模块

modprobe ip_vs && modprobe ip_vs_rr && modprobe ip_vs_wrr && modprobe ip_vs_sh && modprobe nf_conntrack_ipv4

3、编辑文件添加开机启动

vim /etc/rc.local
modprobe ip_vs
modprobe ip_vs_rr
modprobe ip_vs_wrr
modprobe ip_vs_sh
modprobe nf_conntrack_ipv4

4、给rc.local添加可执行权限

chmod +x /etc/rc.local

5、配置转发相关参数,否则可能会出错

cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
vm.swappiness=0
EOF

使配置生效

sysctl --system

6、如果net.bridge.bridge-nf-call-iptables报错,加载br_netfilter模块

modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf

7、查看是否加载成功

lsmod | grep ip_vs

8、配置kubelet的cgroups

cat >/etc/sysconfig/kubelet<<EOF
KUBELET_EXTRA_ARGS="--cgroup-driver=cgroupfs --pod-infra-container-image=k8s.gcr.io/pause:3.2"
EOF

9、启动kubelet

systemctl daemon-reload
systemctl enable kubelet && systemctl restart kubelet
systemctl status kubelet

你会发现报错误信息:错误是正常现象,因为api-server还没有在master节点上初始化启动

三、master节点初始化

kubeadm init --kubernetes-version=v1.19.1 --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=192.168.199.200 --ignore-preflight-errors=Swap

注释:

apiserver-advertise-address=192.168.229.11 master的ip地址。
--kubernetes-version=v1.19.1 --更具具体版本进行修改
--pod-network-cidr=10.244.0.0/16 我们自定义pod给容器内指定的网段
--ignore-preflight-errors=Swap   忽略swap分区错误(我们已经关闭了swap,此处有没有都可以)
注意在检查⼀下swap分区是否关闭

1、Mater重新完成初始化

2、配置使用网络插件

---
kind: Namespace
apiVersion: v1
metadata:name: kube-flannellabels:k8s-app: flannelpod-security.kubernetes.io/enforce: privileged
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:labels:k8s-app: flannelname: flannel
rules:
- apiGroups:- ""resources:- podsverbs:- get
- apiGroups:- ""resources:- nodesverbs:- get- list- watch
- apiGroups:- ""resources:- nodes/statusverbs:- patch
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:labels:k8s-app: flannelname: flannel
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: flannel
subjects:
- kind: ServiceAccountname: flannelnamespace: kube-flannel
---
apiVersion: v1
kind: ServiceAccount
metadata:labels:k8s-app: flannelname: flannelnamespace: kube-flannel
---
kind: ConfigMap
apiVersion: v1
metadata:name: kube-flannel-cfgnamespace: kube-flannellabels:tier: nodek8s-app: flannelapp: flannel
data:cni-conf.json: |{"name": "cbr0","cniVersion": "0.3.1","plugins": [{"type": "flannel","delegate": {"hairpinMode": true,"isDefaultGateway": true}},{"type": "portmap","capabilities": {"portMappings": true}}]}net-conf.json: |{"Network": "10.244.0.0/16","EnableNFTables": false,"Backend": {"Type": "vxlan"}}
---
apiVersion: apps/v1
kind: DaemonSet
metadata:name: kube-flannel-dsnamespace: kube-flannellabels:tier: nodeapp: flannelk8s-app: flannel
spec:selector:matchLabels:app: flanneltemplate:metadata:labels:tier: nodeapp: flannelspec:affinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: kubernetes.io/osoperator: Invalues:- linuxhostNetwork: truepriorityClassName: system-node-criticaltolerations:- operator: Existseffect: NoSchedule- key: node.kubernetes.io/not-readyoperator: Existseffect: NoScheduleserviceAccountName: flannelinitContainers:- name: install-cni-pluginimage: docker.io/flannel/flannel-cni-plugin:v1.5.1-flannel2command:- cpargs:- -f- /flannel- /opt/cni/bin/flannelvolumeMounts:- name: cni-pluginmountPath: /opt/cni/bin- name: install-cniimage: docker.io/flannel/flannel:v0.25.6command:- cpargs:- -f- /etc/kube-flannel/cni-conf.json- /etc/cni/net.d/10-flannel.conflistvolumeMounts:- name: cnimountPath: /etc/cni/net.d- name: flannel-cfgmountPath: /etc/kube-flannel/containers:- name: kube-flannelimage: docker.io/flannel/flannel:v0.25.6command:- /opt/bin/flanneldargs:- --ip-masq- --iface=ens33- --kube-subnet-mgrresources:requests:cpu: "100m"memory: "50Mi"securityContext:privileged: falsecapabilities:add: ["NET_ADMIN", "NET_RAW"]env:- name: POD_NAMEvalueFrom:fieldRef:fieldPath: metadata.name- name: POD_NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.namespace- name: EVENT_QUEUE_DEPTHvalue: "5000"volumeMounts:- name: runmountPath: /run/flannel- name: flannel-cfgmountPath: /etc/kube-flannel/- name: xtables-lockmountPath: /run/xtables.lockvolumes:- name: runhostPath:path: /run/flannel- name: cni-pluginhostPath:path: /opt/cni/bin- name: cnihostPath:path: /etc/cni/net.d- name: flannel-cfgconfigMap:name: kube-flannel-cfg- name: xtables-lockhostPath:path: /run/xtables.locktype: FileOrCreate

3、创建flannel网络

kubectl apply -f kube-flannelv1.19.1.yaml

查看哪一个pod被分配到哪一个节点
[root@k8s-master ~]# kubectl get pod -n kube-system -o wide 

获取节点:
[root@master ~]# kubectl get node
NAME     STATUS   ROLES    AGE   VERSION
master   Ready    master   94m   v1.19.1

四、所有node节点加⼊集群

1、开启ip转发

sysctl -w net.ipv4.ip_forward=1

2、在所有node节点操作,此命令为初始化master成功后返回的结果

kubeadm join 192.168.199.200:6443 --token 2eo635.zefoh7sqrndzdju6  --discovery-token-ca-cert-hash sha256:20fe16459d5d0f79025be51f7a800af01f7aa1fb5bd3e33b4eb37328facaff07

注意:

如果加入时显示端口占用:
[root@k8s-node2 ~]# kubeadm reset
再次即可

加入后master一直显示noready
对应的节点 systemctl restart kubelet

五、master相关操作

列举所有的token:kubeadm token list

重新生成token:kubeadm token create

查看hash值:ls  /etc/kubernetes/pki/ca.crt

查看pods:kubectl get pods -n kube-system

查看异常pod信息:kubectl describe pod 异常的pod名称 -n kube-system

删除异常pod:  kubectl delete pod pod名称 -n kube-system

查看pods:  kubectl get pods -n kube-system 

查看节点:kubectl get nodes 

1.驱离k8s-node-1节点上的pod(master上)
[root@kub-k8s-master ~]# kubectl drain kub-k8s-node1 --delete-local-data --force --ignore-daemonsets


驱离后 ,调度功能就禁用了该节点
想要恢复:
[root@kub-k8s-master ~] kubectl uncordon k8s-node2

2.删除节点(master上)
[root@kub-k8s-master ~]# kubectl delete node kub-k8s-node1


3.重置节点(node上-也就是在被删除的节点上)
[root@kub-k8s-node1 ~]# kubeadm reset
注1:需要把master也驱离、删除、重置,这⾥给我坑死了,第⼀次没有驱离和删除master,最后
的结果是查看结果⼀切正常,但coredns死活不能用,搞了整整1天,切勿尝试

注2:master上在reset之后需要删除如下文件
# rm -rf /var/lib/cni/ $HOME/.kube/config

一步到位加入集群:

第一种方法:
kubeadm token create --print-join-command
[root@k8s-master ~]# kubeadm token create --print-join-command
会自动生成一个制定了,让你在任意想添加的节点上使用该命令
kubeadm join 192.168.229.11:6443 --token plw7zn.f7pnvhok89fc0og5     --discovery-token-ca-cert-hash sha256:20fe16459d5d0f79025be51f7a800af01f7aa1fb5bd3e33b4eb37328facaff07

第⼆种⽅法:
token=$(kubeadm token generate)
kubeadm token create $token --print-join-command --ttl=0

ttl=0表示令牌用于不会过期
这种方式生成长期有效的加入集群指令

相关文章:

kebuadm部署k8s集群

官方文档&#xff1a; Installing kubeadm | Kubernetes 切记要关闭防⽕墙、selinux、禁用交换空间&#xff0c; cpu核⼼数⾄少为2 内存4G kubeadm部署k8s⾼可用集群的官方文档&#xff1a; Creating Highly Available Clusters with kubeadm | Kubernetes 你需要在每台…...

Unity3D学习FPS游戏(2)简单场景、玩家移动控制

前言&#xff1a;上一篇的时候&#xff0c;我们已经导入了官方fps的素材&#xff0c;并且对三维模型有了一定了解。接下来我们要构建一个简单的场景让玩家能够有地方移动&#xff0c;然后写一个简单的玩家移动控制。 简单场景和玩家移动 简单场景玩家移动控制玩家模型视野-摄像…...

网上的 AQS 文章让我很失望

一、AQS 很多人都没有讲明白 &#x1f914; 翻看了网上的 AQS&#xff08;AbstractQueuedSynchronizer&#xff09;文章&#xff0c;质量参差不齐&#xff0c;大多数都是在关键处跳过、含糊其词&#xff0c;美其名曰 “传播知识” 。 大多数都是进行大段的源码粘贴和注释&…...

滑动窗口子串

文章目录 滑动窗口一、无重复字符的最长子串二、找到字符串中所有字母异位词 子串三、和为 K 的子数组四、滑动窗口最大值五、最小覆盖子串 滑动窗口 一、无重复字符的最长子串 题目链接 &#xff08;方法一&#xff1a;暴力枚举&#xff09; &#xff08;方法二&#xff…...

【windows11 提示“Microsoft Visual C++ Runtime Library Runtime Error】

windows11 提示“Microsoft Visual C++ Runtime Library Runtime Error” 问题描述解决方法郑重声明:本人原创博文,都是实战,均经过实际项目验证出货的 转载请标明出处:攻城狮2015 Platform: windows OS:windows11 问题描述 解决方法 下载VisualCppRedist_AIO_x86_x64.exe 安…...

【leetcode|哈希表、动态规划】最长连续序列、最大子数组和

目录 最长连续序列 解法一&#xff1a;暴力枚举 复杂度 解法二&#xff1a;优化解法一省去二层循环中不必要的遍历 复杂度 最大子数组和 解法一&#xff1a;暴力枚举 复杂度 解法二&#xff1a;贪心 复杂度 解法三&#xff1a;动态规划 复杂度 最长连续序列 输入输…...

【人工智能】掌握深度学习中的时间序列预测:深入解析RNN与LSTM的工作原理与应用

深度学习中的循环神经网络&#xff08;RNN&#xff09;和长短时记忆网络&#xff08;LSTM&#xff09;在处理时间序列数据方面具有重要作用。它们能够通过记忆前序信息&#xff0c;捕捉序列数据中的长期依赖性&#xff0c;广泛应用于金融市场预测、自然语言处理、语音识别等领域…...

今日开放!24下软考机考「模拟练习平台」操作指南来啦!

2024年下半年软考机考模拟练习平台今日开放&#xff0c;考生可以下载模拟作答系统并登录后进行模拟练习&#xff0c;熟悉答题流程及操作方法。 一、模拟练习时间 2024年下半年软考机考模拟练习平台开放时间为2024年10月23日9:00至11月6日17:00&#xff0c;共15天。 考生可以在…...

合并.md文档

需求&#xff1a;将多个.md文档合并成一个.md文档。 方法一&#xff1a;通过 type 命令 参考内容&#xff1a;多个md文件合并 步骤&#xff1a; 把需要合并的 .md 文档放入到一个文件夹内。修改需要合并的 .md 文档名&#xff0c;可以在文档名前加上 1.2.3 来表明顺序&#x…...

10月18日笔记(基于系统服务的权限提升)

系统内核漏洞提权 当目标系统存在该漏洞且没有更新安全补丁时&#xff0c;利用已知的系统内核漏洞进行提权&#xff0c;测试人员往往可以获得系统级别的访问权限。 查找系统潜在漏洞 手动寻找可用漏洞 在目标主机上执行以下命令&#xff0c;查看已安装的系统补丁。 system…...

【STM32 Blue Pill编程实例】-控制步进电机(ULN2003+28BYJ-48)

控制步进电机(ULN2003+28BYJ-48) 文章目录 控制步进电机(ULN2003+28BYJ-48)1、步进电机介绍2、ULN2003步进电机驱动模块3、硬件准备及接线4、模块配置3.1 定时器配置3.2 ULN2003输入引脚配置4、代码实现在本文中,我们将介使用 STM32Cube IDE 使用 ULN2003 电机驱动器来控制28B…...

监督学习、无监督学习、半监督学习、强化学习、迁移学习、集成学习分别是什么对应什么应用场景

将对监督学习、无监督学习、半监督学习、强化学习、迁移学习和集成学习进行全面而详细的解释&#xff0c;包括定义、应用场景以及具体的算法/模型示例。 1. 监督学习 (Supervised Learning) 定义&#xff1a;监督学习是一种机器学习方法&#xff0c;其中模型通过已知的输入数…...

WSL2 Linux子系统调整存储位置

WSL2 默认不支持修改Linux 安装路径&#xff0c;官方提供的方式&#xff0c;只有通过导出、导入的方式实现Linux子系统的迁移。 修改注册表的方式官方不推荐&#xff0c;没有尝试过&#xff0c;仅提供操作方式(自行评估风险&#xff0c;建议备份好数据) 1. 打开 **注册表编辑器…...

Shiro授权

一、定义与作用 授权&#xff08;Authorization&#xff09;&#xff0c;也称为访问控制&#xff0c;是确定是否允许用户/主体做某事的过程。在Shiro安全框架中&#xff0c;授权是核心组件之一&#xff0c;它负责控制用户对系统资源的访问权限&#xff0c;确保用户只能访问其被…...

算法题总结(十五)——贪心算法(下)

1005、K 次取反后最大化的数组和 给你一个整数数组 nums 和一个整数 k &#xff0c;按以下方法修改该数组&#xff1a; 选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。 重复这个过程恰好 k 次。可以多次选择同一个下标 i 。 以这种方式修改数组后&#xff0c;返回数组 可…...

《深度学习》【项目】自然语言处理——情感分析 <下>

目录 一、了解项目 1、任务 2、文件内容 二、续接上篇内容 1、打包数据&#xff0c;转化Tensor类型 2、定义模型&#xff0c;前向传播函数 3、定义训练、测试函数 4、最终文件格式 5、定义主函数 运行结果&#xff1a; 一、了解项目 1、任务 对微博评论信息的情感分…...

postgresql是国产数据库吗?

PostgreSQL不是国产数据库。但是PostgreSQL对国产数据库的发展有着重要影响&#xff0c;许多国产数据库产品是基于PostgreSQL进行二次开发的。 PostgreSQL的开源特性也是其受欢迎的重要原因之一。开源意味着任何人都可以查看、修改和使用PostgreSQL的源代码。这使得PostgreSQL…...

软考——计算机网络概论

文章目录 &#x1f550;计算机网络分类1️⃣通信子网和资源子网2️⃣网络拓扑结构3️⃣ 计算机网络分类3&#xff1a;LAN MAN WAN4️⃣其他分类方式 &#x1f551;OSI 和 TCP/IP 参考模型1️⃣OSI2️⃣TCP/IP&#x1f534;TCP/IP 参考模型对应协议 3️⃣OSI 和 TCP/IP 模型对应…...

01 设计模式-创造型模式-工厂模式

工厂模式&#xff08;Factory Pattern&#xff09;是 Java 中最常用的设计模式之一&#xff0c;它提供了一种创建对象的方式&#xff0c;使得创建对象的过程与使用对象的过程分离。 工厂模式提供了一种创建对象的方式&#xff0c;而无需指定要创建的具体类。 通过使用工厂模式…...

ComnandLineRunner接口, ApplcationRunner接口

ComnandLineRunner接口, ApplcationRunner接口 介绍&#xff1a; 这两个接口都有一个run方法&#xff0c;执行时间在容器对象创建好后&#xff0c;自动执行run ( )方法。 创建容器的同时会创建容器中的对象&#xff0c;同时会把容器中的对象的属性赋上值&#xff1a; 举例&…...

Swift用于将String拆分为数组的components与split的区别

根据特定分隔符拆分字符串 在 Swift 中&#xff0c;components(separatedBy:) 和 split(separator:) 都可以用于将字符串拆分为数组&#xff0c;但它们有一些关键区别。下面将从返回值类型、性能和功能等角度进行对比。 1. 返回值类型 components(separatedBy:)&#xff1a;…...

docker之redis安装(项目部署准备)

创建网络 docker network create net-ry --subnet172.68.0.0/16 --gateway172.68.0.1 redis安装 #创建目录 mkdir -p /data/redis/{conf,data} #上传redis.conf文件到/data/redis/conf文件夹中 #对redis.conf文件修改 # bind 0.0.0.0 充许任何主机访问 # daemonize no #密码 # …...

使用Maven前的简单准备

目录 一、Maven的准备 1、安装jdk1.8或以上版本 2、下载Maven 3、安装Maven 二、Maven目录的分析 三、Maven的环境变量配置 1、设置MAVEN_HOME环境变量 2、设置Path环境变量 3、验证配置是否完成 一、Maven的准备 1、安装jdk1.8或以上版本 jdk的安装 2、下载Maven…...

Java | Leetcode Java题解之第494题目标和

题目&#xff1a; 题解&#xff1a; class Solution {public int findTargetSumWays(int[] nums, int target) {int sum 0;for (int num : nums) {sum num;}int diff sum - target;if (diff < 0 || diff % 2 ! 0) {return 0;}int neg diff / 2;int[] dp new int[neg …...

阅读笔记 Contemporary strategy analysis Chapter 13

来源&#xff1a;Robert M. Grant - Contemporary strategy analysis (2018) Chapter 13 Implementing Corporate Strategy: Managing the Multibusiness Firm Ⅰ Introduction and Objectives 多业务公司 multibusiness firm由多个独立的业务部门组成&#xff0c;如业务单元…...

Python GUI 编程:tkinter 初学者入门指南——复选框

在本文中&#xff0c;将介绍 tkinter Checkbox 复选框小部件以及如何有效地使用它。 复选框是一个允许选中和取消选中的小部件。复选框可以保存一个值&#xff0c;通常&#xff0c;当希望让用户在两个值之间进行选择时&#xff0c;可以使用复选框。 要创建复选框&#xff0c;…...

使用vscode导入库失败解决方法

导入库失败原因 在使用vscode写python代码时&#xff0c;有时会遇见导入库失败的情况&#xff0c;如下图&#xff1a;无法解析导入“xxxxx” 或者 运行时报错&#xff1a;ModuleNotFoundError: No module named xxxxx。 原因可能有&#xff1a; 根本没有下载库&#xff1b…...

无线网卡知识的学习-- mac80211主要代码流程

一 简介概要: mac80211驱动程序作为Linux内核中管理和控制无线网络接口的核心模块,其主要流程涵盖了从数据帧接收到发送的完整过程。 主要覆盖了7个方面: 1. 数据帧接收流程,2. 数据帧发送流程 3. 频道管理和切换 4. 接口管理 5. 安全和认证 6. 管理和调试 7. 注册和初…...

关于k8s集群高可用性的探究

1. k8s的高可用的核心是什么&#xff1f; 说到核心、本质 意味着要从物理层来考虑技术 k8s是一个容器编排管理工具&#xff0c;k8s受欢迎的时机 是docker容器受欢迎时&#xff0c;因为太多的docker容器&#xff0c;管理起来是一个大工程 那么刚好k8s是google自己用了十来年…...

保姆级Pinpoint(APM)实战教程

什么是Pinpoint Pinpoint是由韩国NAVER公司开发并开源的一款应用程序管理工具&#xff0c;主要针对大规模分布式系统进行性能监控和故障诊断。通过跟踪分布式应用程序之间的事务&#xff0c;帮助分析系统的整体结构以及其中的组件是如何相互连接的。 与其对标的还有Twitter的Zi…...