• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
JZ666
博客园    首页    新随笔    联系   管理    订阅  订阅
K8s系列-安装k8s集群

image

 

什么是Kubernetes (k8s)?

Kubernetes是一个开源的容器集群管理系统,可以实现大规模部署和管理容器化应用程序,主要功能包括:

  • 服务发现和负载均衡

Kubernetes 可以使用 DNS 名称或自己的 IP 地址来曝露容器。 如果进入容器的流量很大, Kubernetes 可以负载均衡并分配网络流量,从而使部署稳定。

  • 存储编排

Kubernetes 允许你自动挂载你选择的存储系统,例如本地存储、公共云提供商等。

  • 自动部署和回滚

使用 Kubernetes 描述已部署容器的所需状态, 它可以以受控的速率将实际状态更改为期望状态。

  • 自动完成装箱计算

你为 Kubernetes 提供许多节点组成的集群,在这个集群上运行容器化的任务。 你告诉 Kubernetes 每个容器需要多少 CPU 和内存 (RAM)。 Kubernetes 可以将这些容器按实际情况调度到你的节点上,以最佳方式利用你的资源。

  • 自我修复

你为 Kubernetes 提供许多节点组成的集群,在这个集群上运行容器化的任务。 你告诉 Kubernetes 每个容器需要多少 CPU 和内存 (RAM)。 Kubernetes 可以将这些容器按实际情况调度到你的节点上,以最佳方式利用你的资源。

  • 密钥与配置管理

Kubernetes 允许你存储和管理敏感信息,例如密码、OAuth 令牌和 ssh 密钥。 你可以在不重建容器镜像的情况下部署和更新密钥和应用程序配置,也无需在堆栈配置中暴露密钥

image

 

准备三台服务器,操作系统centos7.x

硬件配置:CPU2核、内存2GB、硬盘30GB

确保机器间网络互通,时钟同步,所需镜像及资源包下载链接:点击下载

规划:

节点名称IP安装组件
k8s-master 192.168.14.101 docker etcd kubelet kube-proxy kube-apiserver kube-controller-manager kube-scheduler
k8s-node1 192.168.14.102 docker etcd kubelet kube-proxy
k8s-node2 192.168.14.103 docker etcd kubelet kube-proxy
docker私有仓库 192.168.14.100 docker(服务器配置可以低点)

服务器初始化操作

# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 关闭 selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0
# 关闭 swap
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab

# master节点添加 hosts
cat >> /etc/hosts << EOF
192.168.14.101 k8s-master
192.168.14.102 k8s-node1
192.168.14.103 k8s-node2
EOF

# 将桥接的 IPv4 流量传递到 iptables 的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
# 生效
sysctl -p

部署docker本地私有镜像仓库 (192.168.14.100)

#将资源包里面的docker_绿色免安装版.tar.gz解压,把docker_inspkg下的所有文件放到 /usr/sbin/目录下
#使用 systemd 管理 docker
vim /usr/lib/systemd/system/docker.service

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/sbin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
###########################分 割 线 #############################
#启动并设置开机启动
systemctl daemon-reload
systemctl start docker
systemctl enable docker
###########################分 割 线 #############################
#新建或修改daemon.json
vim /etc/docker/daemon.json

{
  "registry-mirror" : ["https://hub-mirror.c.163.com"],
  "insecure-registries" : ["registry:5000"],
  "log-level": "warn",
  "log-opts": {
    "max-size": "20m",
    "max-file": "3"
  }
}
###########################分 割 线 #############################
#重启docker服务
systemctl restart docker
###########################分 割 线 #############################
#将资源包里面的docker-images目录下registry镜像源导入
docker load < registry.docker
###########################分 割 线 #############################
#启动容器
mkdir -p /opt/data/registry
docker run -d --name private_registry -p 5000:5000 -v /opt/data/registry:/var/lib/registry --restart=always registry

 

  • 上传资源包里面的镜像

#将资源包里面的docker-images目录下所有镜像导入(registry.docker已经导过)
docker load -i calico_3.8.8.tar
docker load -i dashboard-v2.0.4.docker
docker load -i metrics-scraper-v1.0.4.docker
docker load -i coredns-1.6.2.docker
docker load -i busybox.docker

docker images    #查看镜像
REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
registry                       latest              1fd8e1b0bb7e        13 days ago         26.2MB
kubernetesui/dashboard         v2.0.4              46d0a29c3f61        7 months ago        225MB
kubernetesui/metrics-scraper   v1.0.4              86262685d9ab        13 months ago       36.9MB
coredns/coredns                1.6.2               bf261d157914        20 months ago       44.1MB
registry:5000/calico/node                 v3.8.8-1            3610c051aa19        23 months ago       192MB
registry:5000/calico/cni                  v3.8.8-1            ca2a236d9210        23 months ago       161MB
registry:5000/calico/kube-controllers     v3.8.8              7125b7d47e9f        23 months ago       48.9MB
registry:5000/calico/pod2daemon-flexvol   v3.8.8              cacd6d732f12        23 months ago       9.38MB
busybox                        1.28.4              8c811b4aec35        2 years ago         1.15MB

#给刚导入的镜像重新打标签
docker tag busybox:1.28.4 registry:5000/busybox
docker tag coredns/coredns:1.6.2 registry:5000/coredns
docker tag kubernetesui/metrics-scraper:v1.0.4 registry0:5000/metrics-scraper
docker tag kubernetesui/dashboard:v2.0.4 registry:5000/dashboard

#打完标签后的镜像上传到本地仓库
docker push registry:5000/busybox
docker push registry:5000/flannel-amd64
docker push registry:5000/flannel-arm
docker push registry:5000/flannel-arm64
docker push registry:5000/flannel-ppc64le
docker push registry:5000/flannel-s390x
docker push registry:5000/coredns
docker push registry:5000/metrics-scraper
docker push registry:5000/dashboard

#删除不需要的镜像
docker rmi busybox:1.28.4
docker rmi docker rmi quay.io/coreos/flannel:v0.11.0-amd64
docker rmi coredns/coredns:1.6.2
docker rmi kubernetesui/metrics-scraper:v1.0.4
docker rmi kubernetesui/dashboard:v2.0.4

 

 

posted on 2025-12-11 13:44  Me-Tycoon  阅读(25)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3