Kubernetes v1.10 + Docker v17.09 二进制部署:3节点集群搭建与5大组件配置详解

KubernetesDocker集群部署
于 2026-07-07 09:57:23 修改
·本内容遵循CC 4.0 BY-SA版权协议

Kubernetes v1.10 + Docker v17.09 二进制部署:3节点集群搭建与核心组件配置实战

1. 环境规划与系统准备

在开始部署之前,我们需要明确集群架构和节点角色分配。典型的3节点集群包含1个Master节点和2个Worker节点:

节点角色 IP地址示例 运行的核心组件
Master节点 192.168.1.10 etcd、kube-apiserver、kube-controller-manager、kube-scheduler
Worker节点 192.168.1.11 kubelet、kube-proxy、Docker
Worker节点 192.168.1.12 kubelet、kube-proxy、Docker

系统要求与基础配置:

  1. 操作系统:CentOS 7.x 或 Ubuntu 16.04+,64位系统
  2. 硬件配置
    • Master节点:2核CPU、4GB内存、50GB磁盘
    • Worker节点:4核CPU、8GB内存、100GB磁盘
  3. 网络要求
    • 所有节点间网络互通
    • 关闭防火墙或开放必要端口(6443、2379-2380、10250等)
    • 禁用SELinux(生产环境需按需配置)
BASH
# 关闭防火墙(所有节点)
systemctl stop firewalld
systemctl disable firewalld
 
# 禁用SELinux(临时生效)
setenforce 0
 
# 永久禁用SELinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
 
# 关闭Swap(Kubernetes 1.8+要求)
swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

2. 组件安装与Master节点配置

2.1 安装Docker 17.09

在所有节点上安装指定版本的Docker:

BASH
# 安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
 
# 添加Docker仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
 
# 安装指定版本
yum install -y docker-ce-17.09.1.ce-1.el7.centos
 
# 启动并设置开机自启
systemctl start docker
systemctl enable docker

2.2 部署etcd集群

etcd作为Kubernetes的分布式键值存储,需要首先部署:

BASH
# 下载etcd二进制包
wget https://github.com/coreos/etcd/releases/download/v3.3.4/etcd-v3.3.4-linux-amd64.tar.gz
tar -zxvf etcd-v3.3.4-linux-amd64.tar.gz
mv etcd-v3.3.4-linux-amd64/etcd* /usr/local/bin/
 
# 创建systemd服务文件
cat > /etc/systemd/system/etcd.service <<EOF
[Unit]
Description=etcd server
After=network.target
 
[Service]
Type=notify
EnvironmentFile=-/etc/etcd/etcd.conf
ExecStart=/usr/local/bin/etcd
Restart=on-failure
LimitNOFILE=65536
 
[Install]
WantedBy=multi-user.target
EOF
 
# 创建配置文件
mkdir -p /etc/etcd
cat > /etc/etcd/etcd.conf <<EOF
ETCD_NAME=default
ETCD_DATA_DIR=/var/lib/etcd
ETCD_LISTEN_PEER_URLS=http://192.168.1.10:2380
ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379
ETCD_INITIAL_ADVERTISE_PEER_URLS=http://192.168.1.10:2380
ETCD_ADVERTISE_CLIENT_URLS=http://192.168.1.10:2379
ETCD_INITIAL_CLUSTER="default=http://192.168.1.10:2380"
EOF
 
# 启动etcd
systemctl daemon-reload
systemctl enable etcd
systemctl start etcd

2.3 部署Kubernetes Master组件

下载Kubernetes二进制文件并配置核心组件:

BASH
# 下载Kubernetes v1.10
wget https://dl.k8s.io/v1.10.0/kubernetes-server-linux-amd64.tar.gz
tar -zxvf kubernetes-server-linux-amd64.tar.gz
cd kubernetes/server/bin
cp kube-apiserver kube-controller-manager kube-scheduler kubectl /usr/local/bin/
 
# 创建API Server服务
cat > /etc/systemd/system/kube-apiserver.service <<EOF
[Unit]
Description=Kubernetes API Server
After=etcd.service
 
[Service]
ExecStart=/usr/local/bin/kube-apiserver \\
--advertise-address=192.168.1.10 \\
--allow-privileged=true \\
--apiserver-count=1 \\
--audit-log-maxage=30 \\
--audit-log-maxbackup=3 \\
--audit-log-maxsize=100 \\
--audit-log-path=/var/log/audit.log \\
--authorization-mode=Node,RBAC \\
--bind-address=0.0.0.0 \\
--client-ca-file=/etc/kubernetes/pki/ca.crt \\
--enable-admission-plugins=NodeRestriction \\
--enable-bootstrap-token-auth=true \\
--etcd-servers=http://127.0.0.1:2379 \\
--kubelet-client-certificate=/etc/kubernetes/pki/apiserver-kubelet-client.crt \\
--kubelet-client-key=/etc/kubernetes/pki/apiserver-kubelet-client.key \\
--service-cluster-ip-range=10.96.0.0/12 \\
--service-node-port-range=30000-32767 \\
--tls-cert-file=/etc/kubernetes/pki/apiserver.crt \\
--tls-private-key-file=/etc/kubernetes/pki/apiserver.key \\
--v=2
Restart=on-failure
RestartSec=5
 
[Install]
WantedBy=multi-user.target
EOF

注意:实际部署时需要生成相应的TLS证书文件并放置到指定路径

3. Worker节点部署

3.1 安装kubelet和kube-proxy

BASH
# 下载node组件
wget https://dl.k8s.io/v1.10.0/kubernetes-node-linux-amd64.tar.gz
tar -zxvf kubernetes-node-linux-amd64.tar.gz
cd kubernetes/node/bin
cp kubelet kube-proxy /usr/local/bin/
 
# 配置kubelet
cat > /etc/systemd/system/kubelet.service <<EOF
[Unit]
Description=Kubernetes Kubelet
After=docker.service
 
[Service]
ExecStart=/usr/local/bin/kubelet \\
--address=0.0.0.0 \\
--pod-manifest-path=/etc/kubernetes/manifests \\
--cluster-dns=10.96.0.10 \\
--cluster-domain=cluster.local \\
--kubeconfig=/etc/kubernetes/kubelet.conf \\
--network-plugin=cni \\
--register-node=true \\
--v=2
Restart=on-failure
RestartSec=5
 
[Install]
WantedBy=multi-user.target
EOF

3.2 配置节点加入集群

在Master节点生成加入命令:

BASH
kubeadm token create --print-join-command

在Worker节点执行生成的join命令:

BASH
kubeadm join 192.168.1.10:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>

4. 网络插件安装

选择Calico作为网络插件:

BASH
kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/rbac-kdd.yaml
kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml

5. 集群验证与排错

5.1 基础状态检查

BASH
# 查看节点状态
kubectl get nodes -o wide
 
# 查看组件状态
kubectl get componentstatuses
 
# 查看Pod状态
kubectl get pods --all-namespaces

5.2 常见问题排查清单

问题现象 可能原因 解决方案
kubelet无法启动 证书配置错误 检查/etc/kubernetes/kubelet.conf中的证书路径和权限
Pod网络不通 网络插件未正确安装 重新安装Calico或Flannel网络插件
API Server无法连接etcd etcd服务未启动或配置错误 检查etcd日志:journalctl -u etcd -f
Node状态为NotReady kubelet与API Server通信问题 检查kubelet日志:journalctl -u kubelet -f
容器无法拉取镜像 Docker配置或镜像仓库访问问题 检查Docker日志:journalctl -u docker -f

6. 生产环境优化建议

  1. 高可用架构

    • 部署多Master节点实现控制平面高可用
    • 使用外部etcd集群(至少3节点)
  2. 安全加固

    • 启用RBAC权限控制
    • 定期轮换证书
    • 配置网络策略限制Pod间通信
  3. 性能调优

    BASH
    # 调整kubelet资源预留
    --kube-reserved=cpu=500m,memory=1Gi
    --system-reserved=cpu=500m,memory=1Gi
  4. 监控方案

    • 部署Prometheus + Grafana监控集群状态
    • 配置告警规则监控关键指标
BASH
# 示例:部署Metrics Server监控资源使用
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
Kubernetes(K8S)集群管理Docker容器(部署篇)
"该资源是关于在Ubuntu 16.04或CentOS 7上部署KubernetesK8S集群以管理Docker容器的教程。使用的Kubernetes版本为v1.8.3Docker版本为v17
weixin_38691453
3172
Docker+K8S 集群环境搭建及分布式应用部署
总之,Docker+K8S 的组合为开发者提供了一种强大且灵活的方式,可以在大规模集群中高效地部署和管理容器化应用程序。
weixin_38741531
1913
二进制部署k8s高可用集群二进制-V1.20).docx
二进制部署k8s高可用集群二进制-V1.20)基于提供的文件信息,本文将对二进制部署k8s高可用集群进行详细的知识点总结。1.
东城绝神
1360
离线部署k8s_1.18.3集群(二进制方式).zip
本文将详细介绍如何通过二进制方式在Linux环境下部署k8s v1.18.3集群,同时涵盖相关组件Docker、etcd和CNI的安装与配置
烟花散尽不问繁华
915
二进制高可用k8s集群一键部署脚本
通过在多个节点部署这些组件配置负载均衡,可以确保即使单个节点故障,集群也能正常运行。部署脚本的readme.txt文件应该包含了详细的步骤和注意事项,可能包括以下内容:1.
devops小白
935
docker k8s集群搭建
在我们的例子中,我们需要将docker-master的IP地址(172.22.3.207)映射到主机名docker-master,并将docker-node1的IP地址(172.22.3.111)映射到主机名
忆几
825
k8s 安装教程 一键安装脚本
### K8s (Kubernetes) 安装教程一键安装脚本详解#### 一、前言在本文中,我们将详细介绍如何通过一键脚本在常见的Linux发行版上(如Ubuntu 16.04 64位、CentOS
qq_22544649
2091
helm部署应用到k8s集群(helm+k8s)-详细文档
helm 部署应用到 k8s 集群详细文档本文档详细介绍了使用 Helm 部署应用到 Kubernetes 集群的过程。
运维实战课程
1674
sealos部署k8s-1.23.0集群
本文档详细介绍了从初始环境配置部署集群的全过程,帮助用户快速搭建起稳定的Kubernetes v1.23.0集群环境。
莫羡千鑫
424
基于kubeadm快速部署kubernetes K8S V1.17.4集群-无坑完整版
本教程详细介绍了如何使用kubeadm快速部署Kubernetes v1.17.4集群,包括主机配置规划、安装Docker和kubeadm、部署Master和Worker节点、安装Pod网络插件flannel,以及部署Dashboard实现集群资源的可视化管理。在过程中,还解决了kubelet服务启动失败的问题,并提供了节点的加入和移除方法。
LightZhang666
4352
Kylin V10部署k8s-单master
本文介绍在Kylin V10系统部署单master k8s的详细步骤。先进行系统环境准备,包括配置主机名、IP等;接着安装ipset、docker等依赖组件;再配置网络参数;然后安装Kubernetes核心组件并生成默认配置;最后初始化集群,添加工作节点并验证集群是否正常。
江涞6
2479
K8S二进制部署详解,一文教会你部署高可用K8S集群
本文详细介绍二进制搭建高可用K8S集群的流程。先分析kubeadm和二进制安装的适用场景,接着阐述环境规划、必备工具安装、初始化操作,然后依次搭建etcd集群、安装kubernetes组件,还介绍了实现k8s apiserver高可用的方法,最后将master节点打污点禁止调度。
景天科技苑
6053
K8S简介和安装部署详细教程
本文详细介绍了K8S集群的安装部署与测试过程。先阐述K8S简介、组件功能及部署方式,接着说明准备工作,包括软硬件要求、环境配置等。然后依次介绍DockerK8S集群的安装,以及K8S集群的测试和Dashboard的安装,涵盖创建Pod、暴露访问、获取token登录等操作。
猫吃了源码
48800
基于 Minikube 搭建第一个k8s集群
本文详细介绍了如何在CentOS 7.x环境下使用Minikube搭建节点Kubernetes集群,包括Docker的安装配置,Minikube的安装启动,以及在k8s集群部署并公开访问Nginx应用的步骤。
小码农叔叔
7655
K8s高可用集群二进制部署-V1.20
本文详细介绍如何使用Kubeadm及二进制部署Kubernetes集群,涵盖单Master架构到多Master高可用架构的全过程,包括Etcd集群Docker安装、Master和Worker节点配置等关键步骤。
二价亚铁.
1650
【云原生Kubernetes系列第三篇】二进制部署节点Kubernetesk8sv1.20(不要因为别人都在交卷,自己就乱写答案)
本文详述了在CentOS上搭建Kubernetes集群的过程,包括初始化环境、部署etcd集群、安装Docker配置Master组件(apiserver、scheduler、controller-manager)以及WorkerNode组件,并部署了CoreDNS和Dashboard。文章还介绍了etcd的配置、证书生成、健康检查等关键步骤,是全面学习Kubernetes集群部署的实战教程。
Steve lu
3270
银河麒麟v10-arm离线部署k8s集群v1.23.4)
本文详细介绍了在麒麟系统环境下,如何进行Kubernetesk8s集群的离线部署,包括系统内核检查、环境初始化、Dockerk8s组件安装、网络插件Calico的安装,以及界面管理工具Kuboard的配置。文中还提到了部署过程中的关键步骤、可能遇到的问题和解决办法,如时间同步、网络配置、依赖项安装等。
Fiona_q
13561
Kubernetes高可用集群二进制离线部署(Runtime Docker
本文详细介绍了一种基于Kubernetes v1.21.10版本的高可用集群部署方案,涉及二进制安装方式、Docker容器运行时、Calico网络插件以及CoreDNS服务发现组件等内容。
努力提升的羊
3127
K8S 二进制集群搭建(一主两从)
本文详述基于Linux系统的Kubernetes v1.20.10二进制方式部署一主两从高可用集群全过程,涵盖etcd集群搭建(含CFSSL自签名证书)、Docker容器运行时配置、Master核心组件(kube-apiserver/controller-manager/scheduler)部署与systemd托管、Node节点kubelet/kube-proxy集成、Calico网络插件安装、Metrics-Server监控指标采集及TLS Bootstrapping安全接入机制。
A-刘晨阳
5568
K8s(Kubernetes)搭建从0到1
本文详细介绍了如何从头开始搭建KubernetesK8s集群,包括主流容器集群管理、Kubernetes核心概念、硬件配置推荐、kubeadm部署、Containerd容器运行时设置、kubectl命令概要以及实际部署操作。通过本文,读者可以学习到完整的K8s集群搭建流程。
小马摸石头
1737
k8s二进制安装与部署
本文围绕二进制搭建Kubernetes v1.20展开,详细介绍实验步骤。包括操作系统初始化配置部署docker引擎、etcd集群、Master和Worker Node组件、CNI网络组件、CoreDNS等,还涉及master02节点部署、负载均衡部署及Dashboard部署等内容。
花狮66
1626
Kubernetes - CentOS7搭建k8s_v1.18集群高可用(kubeadm/二进制部署方式)实测配置验证手册
本文围绕Kubernetes展开,介绍了其概念、功能和架构,阐述了kubeadm和二进制包两种集群搭建方式。详细说明了在CentOS 7.9系统上搭建高可用K8s集群的步骤,包括系统初始化、安装相关组件、初始化Master节点、添加Node节点部署网络插件等,还介绍了Dashboard的部署与使用。
蚊子不吸吸
2030
Kubernetes部署篇】Kubeadm方式搭建K8s集群 1.27.0版本
该文章详细介绍了如何在CentOS7.8环境下搭建Kubernetes集群,包括集群规划、系统初始化、cri-dockerd和kubeadm的安装配置节点的添加以及Calico网络组件的安装和测试。整个过程涵盖了从关闭防火墙、配置域名解析到安装Docker和启用ipvs,最后通过kubectl命令验证CoreDNS解析的可用性。
神奇的海马体
92523
二进制安装Kubernetes(K8s)集群---从零安装教程(无证书)
本文详细介绍如何使用二进制安装Kubernetes (K8s) 集群,并基于containerd进行部署。涵盖安装前的环境准备、Docker与etcd安装、MasterNode节点配置、Flannel网络设置、Harbor私有仓库搭建、kube-dns及dashboard安装等关键步骤。
Wielun
23067
k8s v1.20二进制部署
本文详细介绍k8s v1.20二进制部署过程。先进行环境准备和操作系统初始化配置,接着部署docker引擎、etcd集群,阐述etcd特点默认端口,介绍证书生成。然后部署Master组件,开启apiserver和scheduler服务等,最后部署Worker Node组件,包括拷贝文件、启动服务等操作。
wys_jj
1250
kubernetes】从零开始搭建K8S集群
本文档详细介绍了如何使用kubeadm工具在CentOS 7.9环境下搭建KubernetesK8S集群。包括硬件配置要求、系统初始化、安装Docker配置阿里云镜像加速、部署Master和Node节点、安装CNI网络插件,并通过创建Pod进行集群测试。
云矩阵
4430
CentOS7.9+Kubernetes1.29.2+Docker25.0.3高可用集群二进制部署
本文详细介绍了CentOS7.9+Kubernetes1.29.2+Docker25.0.3高可用集群二进制部署过程,包括总体规划、软件获取、集群主机和网络规划等,还涉及docker、cri - dockerd安装,证书创建,etcd、flannel部署k8s核心组件和插件部署,最后进行集群验证。
swbook
90152
基于 sealos 部署 k8s 1.30 集群
本文介绍基于sealos部署k8s 1.30集群。sealos是基于Kubeadm的K8s一键安装工具,支持Containerd和Docker作为容器运行时。详细说明了sealos cli部署K8S集群的先决条件、查看镜像等步骤,还提及集群维护、命令补全配置及测试等内容。
诺诺学运维
1438
k8s 集群部署二进制方式)
本文详细介绍了K8s集群二进制方式部署流程,包括前置知识、Etcd集群部署Docker安装、Master和Worker节点部署、Dashboard和CoreDNS部署等。还阐述了单Master架构扩容为多Master高可用架构的方法,如部署新Master节点、Nginx+Keepalived负载均衡器及修改Worker节点配置
Gongwei1995
2442