K8S部署步骤:1-操作系统初始化设置

在部署K8S之前,需要进行操作系统初始化设置,包括关闭防火墙以避免集群间通信失败,清理iptables规则以防止冲突,创建工作目录供后续使用,以及定义和分发集群环境变量脚本,并修改系统环境变量,将K8S相关路径添加到PATH中。

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

关闭防火墙

因为k8s是集群间通信的,如果防火墙做了啥限制,说不定就导致通信失败,所以直接关掉

$ sudo systemctl stop firewalld
$ sudo systemctl disable firewalld

清理iptables规则

iptables也是防火墙,与上一步同样的原因,要清理掉已有的规则

$ sudo iptables -F && sudo iptables -X && sudo iptables -F -t nat && sudo iptables -X -t nat

在后面的安装过程中(准确说是在node节点安装kubelet时),k8s会自己去设置一些iptables

iptables还是蛮重要的,建议花10分钟了解一下概念及简单命令

创建工作目录

  • 公共目录,在所有节点创建
# 程序目录
$ sudo mkdir -p /root/local/bin

# 证书与秘钥文件目录
$ sudo mkdir -p /etc/kubernetes/ssl

# etcd TLS 证书与秘钥文件目录
$ sudo mkdir -p /etc/etcd/ssl

# etcd 工作目录
$ sudo mkdir -p /var/lib/etcd

# flannel TLS 证书与秘钥文件目录
$ sudo mkdir -p /etc/flanneld/ssl
  • node节点目录,在所有node节点创建
# kubelet 工作目录
$ sudo mkdir -p /var/lib/kubelet

# kube-proxy 工作目录
$ sudo mkdir -p /var/lib/kube-proxy

定义环境变量

# TLS Bootstrapping 使用的 Token,可以使用命令 head -c 16 /dev/urandom | od -An -t x | tr -d ' ' 生成
BOOTSTRAP_TOKEN="41f7e4ab8b7be874fcaa18bf5c4f1a7c"

# 建议用 未用的网段 来定义服务网段和 Pod 网段
# 服务网段 (Service CIDR),部署前路由不可达,部署后集群内使用 IP:Port 可达
SERVICE_CIDR="10.254.0.0/16"

# POD 网段 (Cluster CIDR),部署前路由不可达,部署后路由可达 (flannel 保证)
CLUSTER_CIDR="172.30.0.0/16"

# 当前部署的集群 Master IP
MASTER_IP=10.61.16.39

# 当前部署的机器名称
NODE_NAME=KUBE-TEST

# 当前部署的机器 IP
NODE_IP=10.61.16.39

# 服务端口范围 (NodePort Range)
NODE_PORT_RANGE="8400-9000"

# etcd 集群所有机器 IP
NODE_IPS="10.61.16.39 10.61.16.29 10.61.16.28"

# etcd 集群间通信的IP和端口
ETCD_NODES=KUBE-TEST=https://10.61.16.39:2380,KUBE-TEST2=https://10.61.16.29:2380,KUBE-TEST3=https://10.61.16.28:2380

# etcd 集群服务地址列表
ETCD_ENDPOINTS="https://10.61.16.39:2379,https://10.61.16.29:2379,https://10.61.16.28:2379"

# flannel 网络配置前缀
FLANNEL_ETCD_PREFIX="/kubernetes/network"

# kubernetes Api Server地址
KUBE_APISERVER="https://${MASTER_IP}:6443"

# kubernetes 服务 IP (预分配,一般是 SERVICE_CIDR 中第一个IP)
CLUSTER_KUBERNETES_SVC_IP="10.254.0.1"

# 集群 DNS 服务 IP (从 SERVICE_CIDR 中预分配)
CLUSTER_DNS_SVC_IP="10.254.0.2"

# 集群 DNS 域名
CLUSTER_DNS_DOMAIN="cluster.local."

分发集群环境变量定义脚本

  • 把全局变量定义脚本拷贝到所有机器的/root/local/bin目录:
$ cp environment.sh /root/local/bin
$ ll /root/local/bin/environment.sh
# -rw-r--r--. 1 root root 1484 Oct 20 14:04 /root/local/bin/environment.sh

修改系统环境变量

由于我们之后会把要用的bin文件放到/root/local/bin里并直接调用,所以要把/root/local/bin加入path里

$ vi ~/.bash_profile
  • 添加PATH=/root/local/bin:$PATH得到
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
   . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin
PATH=/root/local/bin:$PATH

export PATH
  • 应用本次修改
$ source ~/.bash_profile
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值