借Kubernetes-Pod访问内部服务器组件
当我们在 Kubernetes 上工作时,有时会遇到这样的场景:我们需要从本地访问一个位于集群内部的 Redis 服务器,但出于安全考虑,这个 Redis 服务并没有直接暴露给外部。不过,集群里有一个 Pod 已经具备了访问这个 Redis 服务器的能力。 利用这个 Pod 作为跳板,我们可以安全地从本地连接到目标 Redis 服务器。由于这个 Pod 本身并不是 Redis 服务,我们不能直接使用 kubectl port-forward。相反,我们需要在 Pod 内部运行一个临时的代理进程。 下面是实现这个目标的详细步骤,可以作为你的操作笔记或博客文章。 借道 Kubernetes Pod 访问内部 Redis 服务器步骤零:先安装必要工具1apt install -y socat net-tools 步骤一:找到你的“跳板” Pod首先,你需要确定那个能够连接到 Redis 服务器的 Pod 的名称。你可以使用 kubectl 命令列出集群中的所有 Pod: 1kubectl get pods 从列表中找到你需要的 Pod,例如它的名字是 my-redis-client...
kubectl port-forward
kubectl port-forward 是 Kubernetes 提供的一个命令行工具,它允许你从本地机器转发一个或多个端口到 Kubernetes 集群中的 Pod。这个功能在开发和调试应用程序时非常有用,因为它可以让你直接访问集群中的服务,而不需要通过 Kubernetes 的服务发现和负载均衡机制。 使用 kubectl port-forward 的一些常见场景包括: 快速访问服务:当开发者需要迅速检查集群内部署的服务是否正常运行时,他们可以直接将该服务的端口转发到本地机器来访问。 调试应用:如果开发者需要调试集群内部的应用程序,在该应用程序没有暴露为服务或者没有外部IP时,port-forward 可以提供一个快速的解决方案。 数据库调试:对于涉及数据库的服务,port-forward 允许开发者使用本地数据库客户端工具连接到集群中的数据库 Pod,进行调试和查询操作。 基本语法为: 1kubectl port-forward TYPE/NAME [options] LOCAL_PORT:REMOTE_PORT TYPE/NAME 是指定的资源类型和名称,例如 ...
Centos7卸载docker环境
死所有运行容器1# docker kill $(docker ps -a -q) 删除所有容器1# docker rm $(docker ps -a -q) 删除所有镜像1# docker rmi $(docker images -q) 停止 docker 服务1# systemctl stop docker 删除存储目录1234# rm -rf /etc/docker# rm -rf /run/docker# rm -rf /var/lib/dockershim# rm -rf /var/lib/docker 如果发现删除不掉,需要先 umount,如 1# umount /var/lib/docker/devicemapper 卸载 docker 查看已安装的 docker 包 1# yum list installed | grep docker 卸载相关包12345# yum –y remove docker-buildx-plugin.x86_64 docker-ce.x86_64 docker-ce-cli.x86_64 docker-ce-roo...
VPA和CA
VPAKubernetes VPA(Vertical Pod Autoscaler)可以理解为对单个服务资源进行扩容,如CPU、内存之类。它一般应用于一些中心化的单体应用,且无法对其进行部 署多份副本的场景,如 Prometheus 或 Jenkins 这类垂直 Pod 应用自动扩缩容。 VPA 会基于 Pod 的 资源使用情况自动为集群设置资源占用的限制,从而让集群将 Pod 调度到有足够资源的最佳节点上。VPA 也会保持最初容器定义中资源 request 和 limit 的占比。 当控制器检测到一个Pod负载过高时,这时会对当前Pod进行终止,接着对Pod的CPU或内存进行扩容,最后重建Pod,此时Pod可能在任何一个节点进行重建。 它与HPA的扩容机制是完全不一样的,VPA扩容过程中将无法正常提供服务,也因此它使用的场景相比HPA来说,要少的多。 安装vpa1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859...
几种修改docker默认存储位置的方法
转自:https://blog.csdn.net/BigData_Mining/article/details/104921479 需求 docker容器存放目录磁盘空间满了,需要转移数据,修改Docker默认存储位置 解决方法方法1:迁移到新目录 停止docker服务。 1systemctl stop docker; //每个liunx版本的命令不一样。 创建新的docker目录,执行命令df -h,找一个大的磁盘。我的是放在/home目录下面,我的/home目录大小有900G。 我在 /home目录下面建了/home/work/docker_root目录,执行的命令是: 1mkdir -p /home/work/docker_root 迁移/var/lib/docker目录下面的文件到 /home/docker/lib下面 1cp -R /var/lib/docker/* /home/work/docker_root 注意:如果文件内容很...
低版本Docker升级高版本Docker
摘自:https://blog.csdn.net/weixin_46152207/article/details/127533584 在升级前确定几个重点:原配置文件备份一下123456789101112131415161718192021222324252627282930313233343536373839404142[root@localhost ~]# cat /usr/lib/systemd/system/docker.service [Unit]Description=Docker Application Container EngineDocumentation=http://docs.docker.comAfter=network.targetWants=docker-storage-setup.serviceRequires=docker-cleanup.timer[Service]Type=notifyNotifyAccess=mainEnvironmentFile=-/run/containers/registries.confEnvironmentFile...
标签,污点&容忍以及驱逐维护
污点与容忍 亲和性/反亲和性无论是硬策略还是软策略方式,都是调度 pod 到预期节点上,而Taints恰好与之相反,如果一个节点标记为 Taints ,除非 pod 也被标识为可以容忍污点节点,否则该 Taints 节点不会被调度 pod。 污点:taints 容忍:tolerations 污点策略污点策略有以下选项: NoSchedule:表示 pod 不会被调度到标记为 taints 的节点 PreferNoSchedule:NoSchedule 的软策略版本,表示尽量不调度到污点节点上去 NoExecute:该选项意味着一旦 Taint 生效,如该节点内正在运行的 pod 没有对应 Tolerate 设置,会直接被逐出 污点 taint 标记节点的命令如下: 12$ kubectl taint nodes node02 test=node02:NoSchedulenode "node02" tainted 容忍上面的命名将 node02 节点标记为了污点,影响策略是 NoSchedule,只会影响新的 pod 调度,如果仍然希望...
Pod/Node亲和性和反亲和性部署
参考:https://cloud.tencent.com/developer/article/1746649 Kubernetes K8S之Node节点亲和性与反亲和性以及Pod亲和性与反亲和性详解与示例 主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master CentOS7.7 2C/4G/20G 172.16.1.110 10.0.0.110 k8s-node01 CentOS7.7 2C/4G/20G 172.16.1.111 10.0.0.111 k8s-node02 CentOS7.7 2C/4G/20G 172.16.1.112 10.0.0.112 亲和性和反亲和性nodeSelector提供了一种非常简单的方法,将pods约束到具有特定标签的节点。而亲和性/反亲和性极大地扩展了可表达的约束类型。关键的增强是: 1、亲和性/反亲和性语言更具表达性。除了使用逻辑AND操作创建的精确匹配之外,该语言还提供了...
k3s介绍
之所以叫做 K3S 是因为希望安装的 K8S 在内存占用方面只是一半的大小,而一半大的东西就是一个 5 个字母的单词,简写为 K3S。 k3s 特点 k3s 是由 Rancher Lab 开源的轻量级 Kubernetes。k3d 完美继承了 k3s 的简单、快速和占用资源少的优势,镜像大小只有 100 多 M,启动速度快,支持多节点集群。虽然 k3s 对 Kubernetes 进行了轻量化的裁剪,但是提供了完整了功能,像 Istio 这样复杂的云原生应用都可以在 k3s 上顺利运行。 因为 k3s 本身应用场景主要在边缘侧,所以支持的设备和架构很多,如:ARM64 和 ARMv7 处理器。很多老旧 PC 和树莓派这样的设备都可以拿来做成 k3s 集群,为本地研发测试燃尽最后的生命。 k3s是打包为单个二进制文件 把 K8S 相关的组件,比如 kube-api/ kube-manager 都打包到同一个二进制文件里面,这样的话,只需要启动这个文件就可以快速的启动对应的组件。 使用基于 sqlite3 的默认存储机制 同时支持使用 etcd3、MySQL 和...
k3s在启动后修改配置参数
https://github.com/k3s-io/k3s/discussions/5434#discussioncomment-2568382 例如修改端口和单节点最大pod数量(apiserver参数配置在master)master vim /etc/systemd/system/k3s.service 如果是使用etcd作为存储, 配置文件在/etc/systemd/system/multi-user.target.wants/k3s.service 1234ExecStart=/usr/local/bin/k3s \ server \ '--kubelet-arg=max-pods=300' \ '--kube-apiserver-arg=service-node-port-range=30000-40000' systemctl daemon-reload systemctl restart k3s node vim /etc/systemd...
