#!/bin/bash
# example: ./etcd.sh etcd01 192.168.80.10 etcd02=https://192.168.80.11:2380,etcd03=https://192.168.80.12:2380
#创建etcd配置文件/opt/etcd/cfg/etcd
ETCD_NAME=$1
ETCD_IP=$2
ETCD_CLUSTER=$3
WORK_DIR=/opt/etcd
cat > $WORK_DIR/cfg/etcd <<EOF
#[Member]
ETCD_NAME="${ETCD_NAME}"
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="https://${ETCD_IP}:2380"
ETCD_LISTEN_CLIENT_URLS="https://${ETCD_IP}:2379"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://${ETCD_IP}:2380"
ETCD_ADVERTISE_CLIENT_URLS="https://${ETCD_IP}:2379"
ETCD_INITIAL_CLUSTER="etcd01=https://${ETCD_IP}:2380,${ETCD_CLUSTER}"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"
EOF
#Member:成员配置
#ETCD_NAME:节点名称,集群中唯一。成员名字,集群中必须具备唯一性,如etcd01
#ETCD_DATA_DIR:数据目录。指定节点的数据存储目录,这些数据包括节点ID,集群ID,集群初始化配置,Snapshot文件,若未指定-wal-dir,还会存储WAL文件;如果不指定会用缺省目录
#ETCD_LISTEN_PEER_URLS:集群通信监听地址。用于监听其他member发送信息的地址。ip为全0代表监听本机所有接口
#ETCD_LISTEN_CLIENT_URLS:客户端访问监听地址。用于监听etcd客户发送信息的地址。ip为全0代表监听本机所有接口
#Clustering:集群配置
#ETCD_INITIAL_ADVERTISE_PEER_URLS:集群通告地址。其他member使用,其他member通过该地址与本member交互信息。一定要保证从其他member能可访问该地址。静态配置方式下,该参数的value一定要同时在--initial-cluster参数中存在
#ETCD_ADVERTISE_CLIENT_URLS:客户端通告地址。etcd客户端使用,客户端通过该地址与本member交互信息。一定要保证从客户侧能可访问该地址
#ETCD_INITIAL_CLUSTER:集群节点地址。本member使用。描述集群中所有节点的信息,本member根据此信息去联系其他member
#ETCD_INITIAL_CLUSTER_TOKEN:集群Token。用于区分不同集群。本地如有多个集群要设为不同
#ETCD_INITIAL_CLUSTER_STATE:加入集群的当前状态,new是新集群,existing表示加入已有集群。
#创建etcd.service服务管理文件
cat > /usr/lib/systemd/system/etcd.service <<EOF
[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
EnvironmentFile=${WORK_DIR}/cfg/etcd
ExecStart=${WORK_DIR}/bin/etcd \
--name=\${ETCD_NAME} \
--data-dir=\${ETCD_DATA_DIR} \
--listen-peer-urls=\${ETCD_LISTEN_PEER_URLS} \
--listen-client-urls=\${ETCD_LISTEN_CLIENT_URLS},http://127.0.0.1:2379 \
--advertise-client-urls=\${ETCD_ADVERTISE_CLIENT_URLS} \
--initial-advertise-peer-urls=\${ETCD_INITIAL_ADVERTISE_PEER_URLS} \
--initial-cluster=\${ETCD_INITIAL_CLUSTER} \
--initial-cluster-token=\${ETCD_INITIAL_CLUSTER_TOKEN} \
--initial-cluster-state=new \
--cert-file=${WORK_DIR}/ssl/server.pem \
--key-file=${WORK_DIR}/ssl/server-key.pem \
--trusted-ca-file=${WORK_DIR}/ssl/ca.pem \
--peer-cert-file=${WORK_DIR}/ssl/server.pem \
--peer-key-file=${WORK_DIR}/ssl/server-key.pem \
--peer-trusted-ca-file=${WORK_DIR}/ssl/ca.pem
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
EOF
#--listen-client-urls:用于指定etcd和客户端的连接端口
#--advertise-client-urls:用于指定etcd服务器之间通讯的端口,etcd有要求,如果--listen-client-urls被设置了,那么就必须同时设置--advertise-client-urls,所以即使设置和默认相同,也必须显式设置
#--peer开头的配置项用于指定集群内部TLS相关证书(peer 证书),这里全部都使用同一套证书认证
#不带--peer开头的的参数是指定 etcd 服务器TLS相关证书(server 证书),这里全部都使用同一套证书认证
systemctl daemon-reload
systemctl enable etcd
systemctl restart etcd
k8s单Master节点(软件与脚本)
需积分: 0 187 浏览量
更新于2023-09-01
收藏 424.01MB ZIP 举报
Kubernetes(简称k8s)是Google开源的一种容器编排系统,用于自动化容器化的应用程序部署、扩展和管理。在这个“k8s单Master节点(软件与脚本)”的压缩包中,我们很显然会涉及到搭建一个单一Master节点的Kubernetes集群的详细步骤,以及可能包含的软件安装和配置脚本。
在Kubernetes集群中,Master节点是控制平面的中心,它负责处理所有的API请求,调度工作负载到Worker节点,并维护集群的状态。在单Master配置中,虽然降低了高可用性,但适合于小型测试环境或学习实践。
以下是关于搭建k8s单Master节点的一些关键知识点:
1. **前提条件**:你需要一个运行Linux操作系统的服务器或虚拟机。常见的选择有Ubuntu、CentOS或Debian等。确保服务器配置足够运行Kubernetes服务,包括内存、CPU和磁盘空间。
2. **软件准备**:主要涉及以下组件:
- **Docker**:Kubernetes运行在Docker容器内,所以首先要安装并配置Docker。
- **kubelet**:这是Kubernetes节点的主要代理,负责与Master通信,管理容器。
- **kube-apiserver**:提供Kubernetes API服务,接收和处理API请求。
- **kube-scheduler**:负责决定哪个Pod应该在哪个Node上运行。
- **kube-controller-manager**:运行一系列控制器,如ReplicationController,ServiceAccount,Endpoint等。
- **etcd**:一个分布式键值存储,用于保存Kubernetes集群的数据。
3. **配置文件**:每个组件都有自己的配置文件,你需要根据实际情况进行调整。例如,kube-apiserver的配置中需要设置证书和密钥,以确保安全通信。
4. **网络插件**:如Flannel或Calico,用于实现Pod间的网络通信。单Master配置中,网络插件的配置相对简单。
5. **启动服务**:通过脚本启动所有Master组件,通常使用systemd服务单元文件。这些脚本可能会包括初始化系统,配置环境变量,启动和验证服务等功能。
6. **安全设置**:为了保护集群,你需要设置网络策略,限制对API Server的访问,并为kubelet和kube-proxy设置正确的认证和授权。
7. **部署应用**:一旦Master节点运行起来,你可以通过创建Deployment或StatefulSet等资源对象,将应用程序部署到集群中。
8. **监控和日志**:尽管这是一个单Master集群,监控和日志依然重要。你可以使用Prometheus、Grafana来收集和展示性能指标,使用Elasticsearch和Logstash进行日志管理。
这个压缩包中的脚本将详细指导你完成上述步骤,包括下载、安装、配置和启动各个组件。每个步骤都可能涉及多个命令和配置文件修改,因此,理解每个部分的作用对于成功部署至关重要。在实践中,应仔细阅读脚本,了解其工作原理,以便在遇到问题时能够快速解决。同时,记得定期更新Kubernetes组件,以获取最新的安全补丁和功能改进。

cronaldo91
- 粉丝: 2539
- 资源: 2
最新资源
- 基于启发式算法的边缘计算环境深度神经网络卸载策略优化:综合DNNs应用响应时间、计算能耗及租用成本的权衡研究,边缘计算环境下深度神经网络卸载策略的优化研究:基于启发式算法的端-边-云多重资源管理策略及
- 基于紧束缚模型Matlab计算结果分析:二维SSH模型的投影能带与原胞能带对比研究,基于紧束缚模型的二维SSH模型计算:投影能带与原胞能带分析,基于紧束缚模型,使用matlab计算二维SSH模型,结果
- 4.信号和槽+事件2024-06-15.wmv
- cn.wildfirechat0.88老版本jar包,包括common-0.88.jar,sdk-0.88.jar
- 模拟芯片行业分析合集2023
- 基于模糊逻辑与递推最小二乘的整车质量估计算法:置信度评估与鲁棒性提升的应用层算法模型,基于模糊逻辑与递推最小二乘的整车质量估计算法:提高鲁棒性与估计精度,实车应用场景参考,整车质量估计算法,采用sim
- 动平衡计算工具:许用不平衡度、质量偏心度及不平衡量计算器,造纸机资料详解:残余不平衡量与允许偏重量的计算公式(N.m与g.mm),动平衡计算器:全面涵盖不平衡度与残余不平衡量计算的实用工具-造纸机资
- autosar相关资料免费分享
- 基于单片机的智能窗帘的设计
- ble自用资源上传,也免费分享
- 零基础入门转录组下游分析-加权基因共表达网络分析教程配套资源
- DeepSeek学术科研应用速成手册
- 基于Comsol粒子操控仿真的多粒子系统操作研究:双胞胎、四胞胎声镊粒子悬浮及操控实验的探讨,基于Comsol粒子操控仿真的多粒子系统操作研究:双胞胎、四胞胎及声镊悬浮技术的实践与应用,Comsol
- Rancher学习视频
- 基于双闭环控制的11电平三相MMC逆变器并网技术:载波移相调制、电容电压均衡与二倍频环流抑制的Simulink仿真研究,基于双闭环控制的模块化多电平换流器逆变器的并网设计与仿真优化:探索二倍频环流抑制
- 小红书平台2023年5月教育行业报告:女性及年轻群体为核心用户的教育市场趋势与营销策略