搭建K8S-1.23

0、简介

这里只用3台服务器来做一个简单的集群

|----------------|----------------|
| 地址 | 主机名 |
| 192.168.160.40 | kuber-master-1 |
| 192.168.160.41 | kuber-master-2 |
| 192.168.160.42 | kuber-node-1 |

1、关闭三个服务

(1)防火墙

systemctl stop firewalld

(2)Selinux

setenforce 0

(3)swap分区

swapoff -a

2、修改主机名,添加hosts文件

hostnamectl set-hostname kuber-master-1

hostnamectl set-hostname kuber-master-2

hostnamectl set-hostname kuber-node-1

修改/etc/hosts文件

192.168.160.40 kuber-master-1

192.168.160.41 kuber-master-2

192.168.160.42 kuber-node-1

3、修改内核参数

echo "net.bridge.bridge-nf-call-ip6tables = 1" >> /etc/sysctl.conf

echo "net.bridge.bridge-nf-call-iptables = 1" >> /etc/sysctl.conf

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

4、安装docker/kubedam/kubelet

(1)安装docker

(2)安装kubeadm/kubelet

安装kubernetes的镜像源

复制代码
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
       http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

进行安装

复制代码
yum remove -y kubelet kubeadm kubectl
yum install -y kubelet-1.23.17 kubeadm-1.23.17 kubectl-1.23.17
systemctl enable kubelet.service

5、部署k8s master节点

复制代码
kubeadm init \
--kubernetes-version=1.23.17 \
--apiserver-advertise-address=192.168.160.40 \(这里注意转成自己的IP地址)
--image-repository registry.aliyuncs.com/google_containers \
--service-cidr=10.10.0.0/16 \
--pod-network-cidr=10.122.0.0/16

问题: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.

如果碰到这个问题,因为docker的版本较高用的Cgroup是cgroupfs

如果这样的话,需要修改,docker默认的使用的cgroup驱动

复制代码
vim /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"]
}
需要重启
systemctl restart docker

如果没有问题就执行下边的内容,这个在初始完master后会提示让执行这个。

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown (id -u):(id -g) $HOME/.kube/config

6、将node节点加入其中

下边这段命令,在初始完master后会有提示,这里是我的样例。

kubeadm join 192.168.160.40:6443 --token tn624x.ks0y432mi2y6ks2b --discovery-token-ca-cert-hash sha256:e78481f3fe23b94c24df8159974ad9e4eb6ed8efd590105d6c3ba2cf3edb0490

7、将master 2节点加入

执行下边命令获取key

kubeadm init phase upload-certs --upload-certs

最后一行是key

将加入node节点的命令和这个拼接起来

kubeadm join 192.168.160.40:6443 --token tn624x.ks0y432mi2y6ks2b --discovery-token-ca-cert-hash sha256:e78481f3fe23b94c24df8159974ad9e4eb6ed8efd590105d6c3ba2cf3edb0490 --control-plane --certificate-key xxxxxxx(上边执行命令后的key)

这一部分是需要增加的,之后在master2****上执行。

8、安装calico

9、安装ingress

相关推荐
阿里云云原生8 小时前
Agent 数据飞轮平台的选型和实践
云原生
做运维的阿瑞8 小时前
云项目可观测性与成本治理:告警、日志、Dashboard 与预算标签
大数据·云原生·云计算·terraform
无人生还别怕9 小时前
如何搭建k8s服务(containerd部署)
linux·云原生·容器·kubernetes·openanolisos
知已难寻10 小时前
01 · OpenStack的认证管理 Keystone
运维·服务器·云原生·云计算·openstack
分布式存储与RustFS10 小时前
模型权重散落在每台 GPU?用 RustFS 给 vLLM 做共享权重库
云原生·开源·对象存储·分布式存储·s3·rustfs·性能基准
木雷坞11 小时前
Baserow Docker部署:导入设备借用CSV,再用表单新增登记
运维·docker·容器
fb_1234512 小时前
从探针到权限:一篇吃透 Kubernetes 健康检查、RBAC 认证授权与 Dashboard 可视化管理
云原生·容器·kubernetes
wefg112 小时前
【Docker】基本指令
运维·docker·容器
mengge.cloud12 小时前
10-28-Kubernetes健康检查认证授权与Dashboard
云原生·容器·kubernetes
做运维的阿瑞13 小时前
EKS 可销毁环境:集群创建、应用部署到账单归零
云原生·云计算·terraform