从0到1搭建kubernetes集群

本文详细介绍了如何从头开始搭建kubernetes集群,包括环境准备、部署master和slave节点,解决cgroup驱动不一致问题,配置集群安全访问,安装网络插件,以及设置kubernetes dashboard,提供了一步步的操作指南和遇到问题的解决方案。

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

环境准备

笔者是在阿里云租了三台ecs服务器,系统选用的ubuntu16.04(2核4G,建议CPU核数不少于2, 配置过低preflight checks阶段可能会报错). 使用几个虚拟机也可,有条件的可使用本地的几台物理机.

部署master节点

master节点上需要安装 docker cubeadm cubectl cubelet

1.首先进行换源(不然下载很慢),更换阿里云的源.

apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
#将deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main 加入到/etc/apt/sources.list.d/kubernetes.list文件中,文件不存在就创建
echo deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main > /etc/apt/sources.list.d/kubernetes.list

2.安装kubelet kubeadm kubectl 以及docker(笔者安装时kubelet kubeadm kubectl版本为1.23.0)

apt-get update
apt-get install -y kubelet kubeadm kubectl
apt-get install -y docker.io

3.准备一个master节点要使用的yaml文件 vim kubeadm.yaml
内容如下

apiVersion: kubeadm.k8s.io/v1beta3 #版本信息参考kubeadm config print init-defaults命令结果
kind: ClusterConfiguration
kubernetesVersion: 1.23.0 #根据自己安装的k8s版本来写,版本信息参考kubeadm config print init-defaults命令结果
imageRepository: registry.aliyuncs.com/google_containers #配置国内镜像

apiServer:
  extraArgs:
    runtime-config: "api/all=true"

#controllerManager:
# extraArgs:
# horizontal-pod-autoscaler-use-rest-clients: "true" #开启kube-controller-manager能够使用自定义资源(Custom Metrics)进行自动水平扩展,但是高版本不支持该参数需要去掉。
# horizontal-pod-autoscaler-sync-period: "10s"
# node-monitor-grace-period: "10s"

etcd:
  local:
    dataDir: /data/k8s/etcd

4.利用写好的kubeadm.yaml部署master节点

kubeadm init --config kubeadm.yaml

这一步有如下报错信息

[wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory "/etc/kubernetes/manifests". This can take up to 4m0s
[kubelet-check] Initial timeout of 40s passed.
[kubelet-check] It seems like the kubelet isn't running or healthy.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get "http://localhost:10248/healthz": dial tcp [::1]:10248: connect: connection refused.
[kubelet-check] It seems like the kubelet isn't running or healthy.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值