Kubernetes1.28.X 集群安装

1、环境准备

准备2台虚拟机,安装集群一律使用内网ip通信,相关配置文件一律配置内网ip。

ip别名用途
192.168.0.193kubernetes-master.openlab.cn主节点,harbor仓库
192.168.0.194kubernetes-work.openlab.cnwork节点
hostnamectl set-hostname kubernetes-master.openlab.cn //修改主机名

vi /etc/hosts
192.168.0.193 kubernetes-master.openlab.cn
192.168.0.194 kubernetes-work.openlab.cn

systemctl stop firewalld
systemctl disable firewalld
sed -i  '/^SELINUX=/ c  SELINUX=disabled' /etc/selinux/config
setenforce 0

yum install -y wget tree bash-completion lrzsz psmisc net-tools vim //安装常用软件

yum install chrony -y
vim /etc/chrony.conf //配置时间同步
...
注释第三行到第六行
:3,6 s/^/#
使用阿里云的时间服务器
server ntp1.aliyun.com iburst
 
systemctl enable --now chronyd //启动服务

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

vim /etc/sysctl.d/k8s.conf
vm.swappiness=0
#配置iptables参数,使得流经网桥的流量也经过iptables/netfilter防火墙
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1

modprobe br_netfilter //配置生效加载网桥过滤模块
modprobe overlay
sysctl -p /etc/sysctl.d/k8s.conf

yum install ipset ipvsadm -y

vim /etc/sysconfig/modules/ipvs.modules
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack

chmod +x /etc/sysconfig/modules/ipvs.modules
/bin/bash /etc/sysconfig/modules/ipvs.modules
lsmod | grep -e ip_vs -e nf_conntrack_ipv4

2、容器环境

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
yum install -y docker-ce

vim /etc/docker/daemon.json
{
"registry-mirrors": [
    "http://74f21445.m.daocloud.io",
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn"
 ], 
 "insecure-registries": ["kubernetes-master.openlab.cn"],
 "exec-opts": ["native.cgroupdriver=systemd"]
}

systemctl daemon-reload
systemctl enable --now docker

下载cri: cri-dockerd-0.3.4.amd64.tgz

tar xf cri-dockerd-0.3.4.amd64.tgz -C /usr/local/
mv /usr/local/cri-dockerd/cri-dockerd /usr/local/bin/
cri-dockerd --version
vim /etc/systemd/system/cri-dockerd.service
[Unit]
Description=CRI Interface for Docker Application Container Engine
Documentation=https://docs.mirantis.com
After=network-online.target firewalld.service docker.service
Wants=network-online.target
 
[Service]
Type=notify
ExecStart=/usr/local/bin/cri-dockerd --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.9 --network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin --container-runtime-endpoint=unix:///var/run/cri-dockerd.sock --cri-dockerd-root-directory=/var/lib/dockershim --docker-endpoint=unix:///var/run/docker.sock --
cri-dockerd-root-directory=/var/lib/docker
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process
[Install]
WantedBy=multi-user.target
vim /etc/systemd/system/cri-dockerd.socket
[Unit]
Description=CRI Docker Socket for the API
PartOf=cri-docker.service
[Socket]
ListenStream=/var/run/cri-dockerd.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker
[Install]
WantedBy=sockets.target
systemctl daemon-reload
systemctl enable --now cri-dockerd.service

下载docker-compose-linux-x86_64

install -m 755 docker-compose-linux-x86_64 /usr/local/bin/docker-compose
docker-compose version

3、harbor仓库

就把harbor仓库服务安装在主节点上

mkdir -p /data/server
tar xf harbor-offline-installer-v2.8.4.tgz -C /data/server/
cd /data/server/harbor/
docker load -i harbor.v2.8.4.tar.gz
cp harbor.yml.tmpl harbor.yml

vim harbor.yml
修改hostname
hostname: kubernetes-master.openlab.cn
注释掉https相关配置
#https:
#  port: 443
#  certificate: /your/certificate/path
#  private_key: /your/private/key/path
修改密码
harbor_admin_password: 123456
设置data目录
data_volume: /data/server/harbor/data
 
运行
./prepare
./install.sh
vim /etc/systemd/system/harbor.service
[Unit]
Description=Harbor
After=docker.service systemd-networkd.service systemd-resolved.service
Requires=docker.service
Documentation=http://github.com/vmware/harbor
[Service]
Type=simple
Restart=on-failure
RestartSec=5
ExecStart=/usr/local/bin/docker-compose --file /data/server/harbor/docker-compose.yml up
ExecStop=/usr/local/bin/docker-compose --file /data/server/harbor/docker-compose.yml down
[Install]
WantedBy=multi-user.target
 
systemctl daemon-reload
systemctl enable harbor.service
systemctl restart harbor

登录仓库,并推送一个镜像到私有仓库

docker pull busybox
docker login kubernetes-master.openlab.cn -u admin -p 123456
docker tag busybox:latest kubernetes-master.openlab.cn/library/busybox:latest
docker push kubernetes-master.openlab.cn/library/busybox:latest

在这里插入图片描述
登录harbor http://192.168.0.193 账号:admin 密码:123456
在这里插入图片描述
在这里插入图片描述

4、集群初始化

vim /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
yum install kubeadm kubectl kubelet -y //所有节点执行
kubeadm config images list

在master节点上获取镜像文件

vim images.sh
#!/bin/bash
images=$(kubeadm config images list --kubernetes-version=1.28.0 | awk -F'/' '{print $NF}')
for i in ${images}
do
  docker pull registry.aliyuncs.com/google_containers/$i
  docker tag registry.aliyuncs.com/google_containers/$i kubernetes-master.openlab.cn/google_containers/$i
  docker push kubernetes-master.openlab.cn/google_containers/$i
  docker rmi registry.aliyuncs.com/google_containers/$i
done

sh images.sh

master节点初始化

kubeadm init --kubernetes-version=1.28.0 \
--apiserver-advertise-address=192.168.0.193 \
--image-repository kubernetes-master.openlab.cn/google_containers \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16 \
--ignore-preflight-errors=Swap \
--cri-socket=unix:///var/run/cri-dockerd.sock

在这里插入图片描述

node节点加入集群

kubeadm join 192.168.0.193:6443 --token vt6cak.agon8ijauq8cnhxv \
	--discovery-token-ca-cert-hash sha256:6bab4804f213d28877f655222df3d4f7e82c04c18ec40b0835ee175c6895a384

主节点定制k8s的登陆权限

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
echo "source <(kubectl completion bash)" >> ~/.bashrc
echo "source <(kubeadm completion bash)" >> ~/.bashrc
source ~/.bashrc

下载kube-flannel.yml

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

vim flannel.sh
#!/bin/bash
 
for i in $(grep image kube-flannel.yml | grep -v '#' | awk -F '/' '{print $NF}')
do
	docker pull flannel/$i
	docker tag flannel/$i kubernetes-master.openlab.cn/google_containers/$i
	docker push kubernetes-master.openlab.cn/google_containers/$i
	docker rmi flannel/$i
done

 
sh flannel.sh

sed -i '/ image:/s#docker.io/flannel#kubernetes-master.openlab.cn/google_containers#' kube-flannel.yml

kubectl apply -f kube-flannel.yml

5、查看集群状态

kubectl get node
kubectl get pod -n kube-system //全是Running就表示完成了
kubectl get cs //查看集群状态

在这里插入图片描述


在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

为关键信息基础设施安全助力!持安科技加入关保联盟

近日&#xff0c;中关村华安关键信息基础设施安全保护联盟发布了其新一批的会员单位&#xff0c;零信任办公安全代表企业持安科技成功加入&#xff0c;与联盟企业共同为关键信息基础设施提供各类支撑和保障。 中关村华安关键信息基础设施安全保护联盟由北京市科学技术委员会、中…

FISCO BCOS 3.0【02】配置和使用系统自带的控制台

官方技术文档&#xff1a;https://fisco-bcos-doc.readthedocs.io/zh-cn/latest/index.html 我们在官方技术文档的基础上&#xff0c;进行&#xff0c;对文档中一些不清楚的地方进行修正 控制台提供了向FISCO BCOS节点部署合约、发起合约调用、查询链状态等功能。 第一步. 安…

竞赛选题 疲劳驾驶检测系统 python

文章目录 0 前言1 课题背景2 Dlib人脸识别2.1 简介2.2 Dlib优点2.3 相关代码2.4 人脸数据库2.5 人脸录入加识别效果 3 疲劳检测算法3.1 眼睛检测算法3.2 打哈欠检测算法3.3 点头检测算法 4 PyQt54.1 简介4.2相关界面代码 5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#x…

客户端性能优化实践

背景 双十一大促时&#xff0c;客户客服那边反馈商品信息加载卡顿&#xff0c;在不断有订单咨询时&#xff0c;甚至出现了商品信息一直处于加载状态的情况&#xff0c;显然&#xff0c;在这种高峰期接待客户时&#xff0c;是没法进行正常的接待工作的。 起初&#xff0c;页面一…

webpack 中,filename 和 chunkFilename 的区别

filename filename 是一个很常见的配置&#xff0c;就是对应于 entry 里面的输入文件&#xff0c;经过webpack打包后输出文件的文件名。比如说经过下面的配置&#xff0c;生成出来的文件名为 index.min.js。 chunkFilename chunkFilename 指未被列在 entry 中&#xff0c;却…

计算机指令的流水线执行与流水线冒险

目录 计算机指令流水线 流水线冒险 结构冒险 数据冒险 控制冒险 计算机指令流水线 流水线方式的洗衣房可以以并行的方式提高性能 计算机执行指令&#xff0c;同样可以以流水线的方式并行 MIPS 流水化的数据通路 流水线冒险 下一周期不能按时执行下一条指令 结构冒险…

公司防泄密软件科普:防止公司文件泄露的软件有什么功能?哪个好?

公司防泄密软件的主要功能是保护企业的重要文件和数据&#xff0c;以防止未经授权的访问和泄露。以下是防泄密软件的一些常见功能&#xff1a; 1、数据加密&#xff1a;防泄密软件可以使用加密算法对文件进行加密&#xff0c;使得未经授权的人无法读取或复制文件。 2、文件备份…

[Windows Server 2019] 安装与配置邮件服务器

文章目录 安装Winmail邮件服务器配置域名配置更改默认端口验证安装Winmail邮件服务器 Winmail官网

shopee地区选品:深入了解选品工具——知虾,优化您的销售策略

作为一家社交电商平台&#xff0c;Shopee拥有庞大的用户群体和海量的交易数据&#xff0c;这使得该平台的选品数据对于卖家来说非常宝贵。在这方面&#xff0c;知虾工具是一款强大的分析工具&#xff0c;可以帮助卖家深入了解用户的消费习惯、喜好和需求&#xff0c;从而更准确…

Java多线程下使用TransactionTemplate控制事务

简介 本文展示了在Java的多线程环境下使用Spring的TransactionTemplate控制事务的提交与回滚&#xff0c;当任何一个子线程出现异常时&#xff0c;所有子线程都将回滚 环境 JDK&#xff1a;1.8.0_211 SpringBoot&#xff1a;2.5.10 说明 本文通过同时写入用户(User)和用户详细…

代码随想录算法训练营Day 54 || 392.判断子序列、115.不同的子序列

392.判断子序列 力扣题目链接(opens new window) 给定字符串 s 和 t &#xff0c;判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些&#xff08;也可以不删除&#xff09;字符而不改变剩余字符相对位置形成的新字符串。&#xff08;例如&#xff0c;&quo…

聊聊氮化硅(SiNx)在芯片中的重要性

在芯片制造中&#xff0c;有一种材料扮演着至关重要的角色&#xff0c;那就是氮化硅&#xff08;SiNx&#xff09;。尽管它可能并未获得和其他更为熟知的半导体材料&#xff0c;如硅&#xff08;Si&#xff09;、砷化镓&#xff08;GaAs&#xff09;或氮化镓&#xff08;GaN&am…

代码随想录二刷 | 数组 | 移除元素

代码随想录二刷 &#xff5c; 数组 &#xff5c; 移除元素 题目描述解题思路 & 代码实现暴力解法双指针法 题目描述 27. 移除元素 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用…

element表格头部加入图标

首先看看效果 下面是代码 <el-table-column prop"integralBalance"><template slot"header" slot-scope"scope"><div style"display: flex;justify-content: center;align-items: center;">积分余额<i class&qu…

2023年亚太杯数学建模思路 - 案例:异常检测

文章目录 赛题思路一、简介 -- 关于异常检测异常检测监督学习 二、异常检测算法2. 箱线图分析3. 基于距离/密度4. 基于划分思想 建模资料 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 一、简介 – 关于异常…

腾讯云重新注册算不算新用户?算!

腾讯云重新注册算新用户&#xff0c;但有以下限制&#xff1a; 首先&#xff0c;实名认证信息不能沿用老账号的信息&#xff0c;必须使用新的信息进行认证。这是为了确保重新注册的账号能够被视为新用户&#xff0c;并享受到新用户的特权和优惠。 腾讯云双十一领9999代金券 h…

2023亚太杯数学建模思路 - 案例:异常检测

文章目录 赛题思路一、简介 -- 关于异常检测异常检测监督学习 二、异常检测算法2. 箱线图分析3. 基于距离/密度4. 基于划分思想 建模资料 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 一、简介 – 关于异常…

java的包装类

目录 1. 包装类 1.1 基本数据类型和对应的包装类 1.2 装箱和拆箱 1.3 自动装箱和自动拆箱 1. 包装类 在Java中&#xff0c;由于基本类型不是继承自Object&#xff0c;为了在泛型代码中可以支持基本类型&#xff0c;Java给每个基本类型都对应了 一个包装类型。 若想了解…

k8s上Pod生命周期、重启策略、容器探测简介

目录 一.Pod的创建过程 二.Pod的终止过程 三.Pod的重启策略&#xff08;restartPolicy&#xff09; 1.Always 2.OnFailture 3.Never 4.示例 四.Pod生命周期内的5种状态&#xff08;相位&#xff09; 1.Pending 2.Running 3.Succeeded 4.Failed 5.Unknown 五.初始…

centos7安装mongodb

1、下载mongodb https://www.mongodb.com/try/download/community 2、解压 3、重命名 4、创建mongodb的data、logs目录 5、启动mongodb, bin/mongod --port27017 --dbpath/data/program/mongodb/data --logpath/data/program/mongodb/logs/mongodb.log --bind_ip0.0.0.0 --f…