Centos端口开放--开发爬坑mark一下

本文详细介绍Centos系统中防火墙的管理操作,包括查看已开放端口、防火墙状态,以及如何添加、重启和重新加载配置。特别讲解了如何永久开放8080端口,并提供了具体命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Centos端口开放

端口的开放是通过防火墙控制的
1.查看已经开放的端口
firewall-cmd --list-ports
2.查看防火墙的状态
firewall-cmd --state
开启防火墙:systemctl start firewalld.service
关闭防火墙:systemctl stop firewalld.service
重启防火墙:systemctl restart firewalld.service
3.添加tcp协议的端口8080(永久生效)
firewall-cmd --zone=public --add-port=8080/tcp --permanent
–zone=public:表示作用域为公共的;
–add-port=8080/tcp:添加tcp协议的端口8080;
–permanent:永久生效,如果没有此参数,则只能维持当前服务生命周期内,重新启动后失效;
4.重新装载配置
firewall-cmd --reload

参考文章:
https://jingyan.baidu.com/article/5552ef4796f55e518efbc94f.html
https://blog.youkuaiyun.com/codewarrior_/article/details/79570086

<think>好的,用户现在想了解如何在Linux上安装Kubernetes(k8s)集群,是否需要费用,并且要安装两台机器作为集群。首先,我需要确定用户的需求。他们可能是在尝试搭建自己的开发或测试环境,或者是小规模的生产环境。用户提到“不需要用钱吗?”,这说明他们可能希望使用免费的开源解决方案,避免商业服务带来的费用。 接下来,我需要回忆Kubernetes的不同安装方式。常见的有kubeadm、Minikube、k3s等。其中kubeadm是官方推荐的用于生产环境的工具,适合多节点集群,而Minikube主要用于单节点学习,k3s则轻量适合边缘计算或资源有限的环境。用户需要两台机器组成集群,所以kubeadm可能更合适。 然后,用户关心是否需要费用。Kubernetes本身是开源的,免费使用,但如果用户计划在云上部署虚拟机来安装,可能会涉及云服务费用。不过用户可能是在本地物理机或虚拟机上安装,所以费用可能为零,只要他们有自己的硬件资源。 接下来,安装步骤方面,需要分节点准备,包括禁用交换分区、设置主机名、安装容器运行时(如containerd或Docker)、安装kubeadm/kubelet/kubectl、初始化控制平面、添加工作节点等。需要注意的是,网络插件如Calico或Flannel是必须的,否则Pod之间无法通信。此外,可能需要配置防火墙规则,尤其是如果用户的两台机器之间有防火墙的话。 用户可能遇到的常见问题包括网络配置错误、节点之间无法通信、证书问题等。需要提醒用户检查各节点的hosts文件,确保主机名解析正确,以及关闭SELinux和防火墙,或者开放必要端口。另外,使用kubeadm初始化时可能需要调整参数,比如指定apiserver的地址。 对于两台机器的集群,一台作为控制平面(master),另一台作为工作节点(worker)。控制平面节点需要运行kube-apiserver、etcd等组件,而工作节点主要运行kubelet和容器运行时。不过,从Kubernetes 1.24开始,默认不再包含Docker作为容器运行时,所以用户需要安装containerd或CRI-O。这一点需要明确说明,避免用户按照过时的教程操作。 另外,用户可能对高可用性有疑问,但两台机器的集群通常不配置高可用,因为etcd需要奇数个节点来避免脑裂问题。不过对于测试环境,单控制平面加上一个工作节点已经足够。如果用户未来需要扩展,可以再添加节点。 最后,总结是否需要费用:软件本身免费,但硬件资源可能需要自备。如果用户使用自己的机器或虚拟机,没有额外费用。如果是云服务器,费用取决于云服务商。安装步骤需要按照官方文档一步步来,确保依赖项正确安装,网络插件配置正确,节点加入集群的命令正确无误。 可能还需要提醒用户备份重要数据,尤其是在初始化集群时,避免误操作导致数据丢失。另外,提供一些验证集群是否正常工作的命令,比如kubectl get nodes,查看节点状态是否为Ready,以及部署测试应用如nginx来确认Pod调度和网络是否正常。</think>### Kubernetes(k8s)在 Linux 上的安装与集群搭建指南 --- #### 一、安装前的核心问题解答 1. **是否需要付费?** - **Kubernetes 本身是开源免费的**,安装和使用无需任何费用。 - **硬件成本**:如果使用自有物理机或虚拟机(如 VirtualBox、VMware),则无额外费用;若使用云服务器(如 AWS EC2、阿里云 ECS),需支付云主机费用。 2. **两台机器的用途**: - **控制平面(Master 节点)**:负责集群管理和调度(如 API Server、Scheduler、Controller Manager)。 - **工作节点(Worker 节点)**:运行实际应用容器(如 Pod、Deployment)。 --- #### 二、环境准备(两台 Linux 机器) 1. **系统要求** - **操作系统**:Ubuntu 22.04/CentOS 7+/Debian 11 等主流 Linux 发行版。 - **硬件配置**: - Master 节点:2 CPU、4GB 内存、20GB 磁盘。 - Worker 节点:1 CPU、2GB 内存、20GB 磁盘。 - **网络要求**: - 所有节点间可通过 IP 互相通信(关闭防火墙或开放端口:6443、2379-2380、10250-10255)。 2. **所有节点通用配置** ```bash # 1. 禁用交换分区(必须) sudo swapoff -a sudo sed -i '/ swap / s/^/#/' /etc/fstab # 永久禁用 # 2. 设置主机名解析(替换实际 IP 和主机名) sudo vi /etc/hosts # 添加以下内容(示例 IP 和主机名): 192.168.1.100 master 192.168.1.101 worker # 3. 加载内核模块 cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf overlay br_netfilter EOF sudo modprobe overlay sudo modprobe br_netfilter # 4. 配置网络参数 cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 net.ipv4.ip_forward = 1 EOF sudo sysctl --system ``` --- #### 三、安装容器运行时(所有节点) 推荐使用 **containerd**(Kubernetes 官方支持): ```bash # 1. 安装 containerd sudo apt-get update && sudo apt-get install -y containerd # Ubuntu/Debian sudo yum install -y containerd # CentOS/RHEL # 2. 配置 containerd sudo mkdir -p /etc/containerd containerd config default | sudo tee /etc/containerd/config.toml sudo systemctl restart containerd sudo systemctl enable containerd ``` --- #### 四、安装 Kubernetes 组件(所有节点) 1. **安装 kubeadm、kubelet、kubectl** ```bash # Ubuntu/Debian sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl # 禁止自动更新 # CentOS/RHEL cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/ enabled=1 gpgcheck=1 gpgkey=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/repodata/repomd.xml.key EOF sudo yum install -y kubelet kubeadm kubectl sudo systemctl enable --now kubelet ``` --- #### 五、初始化 Master 节点 1. **执行初始化命令**(仅在 Master 节点运行) ```bash sudo kubeadm init --apiserver-advertise-address=192.168.1.100 # 替换为 Master 节点 IP ``` 2. **配置 kubectl** ```bash mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config ``` 3. **安装网络插件(Calico)** ```bash kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.27.0/manifests/calico.yaml ``` --- #### 六、将 Worker 节点加入集群 1. **在 Worker 节点执行加入命令** - 初始化 Master 节点时,终端会输出类似以下命令: ```bash kubeadm join 192.168.1.100:6443 --token <token> --discovery-token-ca-cert-hash <hash> ``` - 在 Worker 节点上运行此命令(需 `sudo` 权限)。 2. **验证集群状态** ```bash kubectl get nodes # 所有节点状态应为 Ready ``` --- #### 七、关键注意事项 1. **防火墙配置** - 确保 Master 和 Worker 节点开放以下端口- **Master 节点**:6443 (API Server), 2379-2380 (etcd), 10250 (kubelet) - **Worker 节点**:10250 (kubelet), 30000-32767 (NodePort 服务) 2. **持久化存储(可选)** - 如需持久化数据,需额外配置存储类(如 NFS、Ceph)。 3. **高可用性(可选)** - 若需高可用控制平面,需部署多个 Master 节点并配置负载均衡。 --- #### 八、成本总结 - **软件成本**:$0(Kubernetes 及相关工具完全免费)。 - **硬件成本**:取决于机器来源(自有设备 $0,云服务器按需付费)。 --- ### 最终效果 完成上述步骤后,你将拥有一个由两台机器组成的 Kubernetes 集群: - **Master 节点**:负责集群管理。 - **Worker 节点**:运行实际应用负载。 可通过以下命令验证: ```bash kubectl get nodes # 应显示两个节点且状态为 Ready kubectl create deployment nginx --image=nginx # 测试部署 kubectl get pods # 查看 Pod 是否正常运行 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值