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

K8s部署,新版本

之前部署的老版本,发现写的挺辣g,之前发布的资源也已经过期了。
所以算是这篇(https://shiao.blog.csdn.net/article/details/127246182)的升级版本。

单节点部署k8s(仅供测试用)

环境准备

版本兼容非常重要,若更改,请自行寻找相关兼容版本的资源。

操作系统:CentOS7.9
docker环境版本:20.10.14
k8s:1.23.1(注意k8s1.24就得用cri-dockerd

k8s依赖docker环境

docker部署

参考:https://shiao.blog.csdn.net/article/details/152792355

k8s部署

主机名称不能为localhost

hostnamectl set-hostname 主机名称

关闭swap分区(防止内存自动交换)

swapoff -a

安装kubelet、kubeadm、kubectl

所有机器配置k8s的yum源地址及安装并启动kubelet。

配置k8s的yum源地址


cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
   http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

安装 kubelet,kubeadm,kubectl

sudo yum install -y kubelet-1.23.1 kubeadm-1.23.1 kubectl-1.23.1

设置开机启动

sudo systemctl enable --now kubelet

kubeadm是集群部署工具
kubectl是集群管理工具,通过command来管理集群
kubelet的k8s集群每个节点的docker管理服务

拉取镜像

kubeadm config images pull \ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-version v1.23.1

配置docker版本和k8s相同

{
    "registry-mirrors": [
        "https://docker.1ms.run"
    ]
}

 vi /etc/docker/daemon.json


{"registry-mirrors": ["https://docker.1ms.run"],"exec-opts": ["native.cgroupdriver=systemd"]
}


systemctl daemon-reload && systemctl restart docker

内网和公网

kubeadm init --apiserver-advertise-address=192.168.0.55 --apiserver-cert-extra-sans=14.103.31.209 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.23.1 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16

--apiserver-advertise-address=10.0.0.10 \  # master 节点内网 IP
service-cidr=10.96.0.0/12 \  # 服务网段(默认,勿与主机网段冲突)
pod-network-cidr=10.244.0.0/16  # Pod 网段(与后续网络插件匹配

假设你上面的ip地址写错了


清理kubectl残留
kubeadm reset -f

rm -rf /etc/kubernetes/*

# 1. 为 root 用户配置(若用普通用户,去掉 sudo 并按提示调整权限)
export KUBECONFIG=/etc/kubernetes/admin.conf# 2. 验证配置是否生效(执行后能看到 master 节点,状态暂时是 NotReady,正常)
kubectl get nodes

可将配置命令写入环境变量文件(永久生效):

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> /etc/profile
source /etc/profile

安装网络插件

# 下载并应用 Calico 配置(适配之前设置的 Pod 网段 10.244.0.0/16)
kubectl apply -f https://docs.projectcalico.org/v3.20/manifests/calico.yaml# 等待 3-5 分钟,再次查看节点状态(会从 NotReady 变为 Ready)
kubectl get nodes -w  # -w 表示实时监控,看到 Ready 后按 Ctrl+C 退出

kubectl get pods -n kube-system | grep calico

kubectl get pod -A

其他节点加入(需要修改token和hash)这个在初始化后,会有
kubeadm join 192.168.0.55:6443 --token xvx24j.hq3ij8fuw2ft0az4         --discovery-token-ca-cert-hash sha256:c4c3d5551f45098ace7b45172ca687aed340ef1fcedc6ffe189ad39fef28657c



如果用的云,则安全组开启ui应用端口6443

这个是看默认的api的地址
kubectl cluster-info



在master节点加权限
# 创建 .kube 目录(如果不存在)

mkdir -p $HOME/.kube

# 复制集群配置文件

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

# 赋予当前用户权限(否则可能没有读写权限)

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


使用kubectl 管理nginx
先啦一个镜像
docker pull nginx

# 创建一个名为 nginx 的 Deployment,使用 nginx:latest 镜像,启动 2 个副本

kubectl create deployment nginx --image=nginx:latest --replicas=2

发现拉不起来,看错误

kubectl describe pod nginx

因为是单节点,而且这个节点是master,理论master是用来管理的,所以不能被其他pod部署在这里,造成性能影响也叫污点。她默认是不允许污点的。此时我们配置她允许污点,手动移除这个标签。(正常应该搭建集群的,作为测试,用单节点足够了)

 

  • 命令说明:--all 表示对所有节点操作,- 符号表示 “移除” 该污点。

kubectl taint nodes --all node-role.kubernetes.io/master-



执行后在看,发现瞬间启动了

给她整个外网映射地址,大家都知道容器内nginx默认是80
kubectl expose deployment nginx --port=80 --target-port=80 --type=NodePort

然后可以下,她给我分配的是哪个端口
kubectl get svc nginx

32435(对外是这个),我们把这个端口加弹性ip白名单里
 

本地telnet 内网ip

加完白名单,本地机器telnet公网ip通

访问测试网站,通

http://www.dtcms.com/a/511358.html

相关文章:

  • LXC容器操作实战【Linux】
  • CAN总线: 仲裁
  • ⸢ 捌-Ⅱ⸥⤳ 可信纵深防御应用实践:软件供应链、数据滥用、安全加固
  • Linux Bash(二)
  • 上海建设单位工程备案网站宜宾网站建设网站
  • AI: 生成Android自我学习路线规划与实战
  • 项目实践2—全球证件智能识别系统(Qt客户端开发+FastAPI后端人工智能服务开发)
  • 百度面试题解析:新生代分区、垃圾回收算法、虚拟机栈和类加载(四)
  • AIDC爆火,储能企业跨界抢滩AI能源“新战场”
  • h5游戏免费下载:飞越天空之城
  • 温州市建设厅网站首页什么网站可以自己做房子设计图
  • 基于多路复用技术的高并发服务器组件
  • Linux 进程控制块(PCB)解析:深入理解进程管理机制
  • 子查询总拖慢查询?把它变成连接就能解决?
  • YOLOv3 核心笔记
  • 谷歌发布首个隐私安全模型VaultGemma
  • 什么情况下可能会导致 Redis 阻塞?
  • 保姆级教程vscode创建uniapp vue3+ts+pinia项目并实现自动导入、打包功能
  • 网站标题改动网络安全工程师工作内容
  • 外贸公司网站制作公司wordpress 视频播放器插件
  • 【时时三省】(C语言基础)文件读写的出错检测
  • Visual Basic 使用公共对话框
  • Amazon Bedrock助力飞书深诺:打造电商广告智能分类的“核心引擎”
  • Android App Startup 库使用说明文档,初始化不再用Application了...
  • 【鸿蒙开发手册】重生之我要学习鸿蒙HarmonyOS开发
  • 市面上的开源 AI 智能体平台使用体验
  • 2025重庆国际工业自动化及机器人展览会将带来那些新技术新体验?
  • 电商网站的建设背景找素材去哪个网站
  • 厦门杏林建设企业网站网络营销的优势有哪些
  • 个人信息出境认证办法