1:节点准备
系统:centos7.5以上,2核4G以上,30G硬盘以上
系统参数设置:
1)关闭swap并释放-m。 swapoff -a
2) 关闭防火墙。 systemctl stopfirewalld; systemctlstatusfirewalld
3)关闭selinux:vim /etc/selinux/config editdisable
setenforce 0
检查selinxu状态:getenforce
4) Master主机 添加到主机。
vim /etc/hosts
xxxx => k8s-master
xxxx= > k8s-node1
5) 将桥接的 IPV4 流量传递到 iptables 链
基于docker和k8s网络的通信iptable。 这不仅仅是清除 Docker 服务器上的 iptables 规则。
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf[ k4]call-iptables = 1
systcl --系统启用
6) 同步期间ntp 安装。时间
yum -y 安装 ntp
ntpdate time.windows.com
kubeadm 这是容器化组件部署。 Kubelet 不是容器化的。 管理 kubelet 只能使用 systemctl 来完成。
二进制文件是守护进程部署。
2.安装Docker/Kubeadm/kubelet/kubectl[所有节点]
2.1 安装docker
yum -y安装docker
systemctl启用docker
systemctl启动docker
2.2 配置国内镜像加速站
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json << [ k4]'EOF'
{
“注册表 -镜像”: ["https://jwrmyfx1.mirror.aliyuncs.com"]
}
EOF
sudo systemctl 守护进程-reload
sudo systemctl restart docker
2.3 k8s国内阿里云yum源配置
cat > /etc/ yum.repos.d/k8s.repo << EOF
[kubernetes]
name=kubernetes
enabled=1
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes[k4 ]el7-x86_6 4/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
EOF
2.4 安装
yum -y install kubeadm kukbectl kukbelet
直接安装最新版本。 当然,你也可以指定版本。
手动启动2.5 kubelet
systemctl start kubelet
systemctl 启用kubelet
3:安装kubenets主节点
3.1运行kubeadm init 命令
kubeadm init \
--apiserver-advertise-address=10.57.98.169 \
-[k4 ]image-存储库registry.aliyuncs.com/google_containers \
--kubernetes-版本v1.23.5 \
--service-cidr=10.96 .0.0/12 \
p>
--Pod-twork-cidr=10.244.0.0/16 \
--ianore-preflight-errors=all
或者命令调整参考。 已编辑 kubeadm.conf
Kubeadm init --config kubeadm.conf --ignore--preflight[ k4]errors=全部
3.2 kubeadm 初始化流程:
1.检查安装环境,包括是否涉及swapoff、机器配置是否一致、kubelet服务是否开启。
2. 通过拉取 kubeadm 配置镜像来下载镜像。 图像已获取。 这可以提前完成。
3.生成证书并保存到路径/etc/kubernetes/pki(k8s、etcd)。
4. [kubeconfig] 生成 kubeconfig 文件。
5. [kubelet-start] 生成并启动 kubelet 配置文件。 "/var/lib/kubelet/config.yaml"
6.[control-plane]启动Master节点组件。 “kube-apiserver”、“kube-controller-manager”、“kube-scheduler”
7. 更改一些。 配置文件存储在 configmap 中,供其他节点初始拉取。
8。 [mark-control-plane] 污染主节点并阻止 Pod 在其上运行。
9. [bootstrap-token] 自动颁发 kubelet 证书。
20、[addons]安装插件CoreDNS。 kube-proxy
最后将kubectl工具使用的kubeconfig复制到默认路径。
[root@k8s-master ~]# mkdir -p $HOME/.kube
[root@k8s-master ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@k8s-master ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config
打印参与master命令的其他节点:
kubeadm 加入 10.57.98.169:6443 --令牌 60npxf.33hynnget6h5b8ej \
--发现-令牌-ca-cert-哈希sha256:69250e213fb500b7ee8a260c5571500c857df05b5a31bac59c6803e3586ee730
3.3 添加节点
3.3.1 节点加入命令
kubeadm join 10.57.98.169:6443 --令牌 60npxf.33hynnget6h5b8ej \
--发现-令牌-ca-cert-哈希 sha256:69250e213fb500b7ee8a260c5571500c857df05b5a31bac59c6803e3586ee730
提示没有显示k8s-node节点,但是没有效果
使用kubectl get node检查节点是否被识别。
3.4 显示错误报告
--journalctl -u kubelet > error.txt
4 月 5 日 10:50:20 k8s-节点 kubelet[11985]:I0405 10:50:20.403382 11985 cni.go:240]“无法更新 cni 配置” err="/etc/cni/net.d 中未找到网络”
4 月 5 日 10: 50:20 k8s -节点kubelet[11985]:E0405 10:50:20.893490 11985 kubelet.go:2347]“容器运行时网络未准备好”networkReady =“NetworkReady = false原因:NetworkPluginNotReady消息:docker: 网络插件未就绪:cni 配置未初始化"
4.部署容器网络 CNI
下载 4.1 文件
wget https://docs.projectcalico.org/manifests/calico.yaml --no-check-certificate
4.2 编辑文件
修改配置文件中的参数如下。
kubeadm 初始化 \
--apiserver-advertise-address=10.57.98.169 \
--image-存储库registry.aliyuncs.com/google_containers \
--kubernetes-版本 v1.23.5 \
--服务-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16 \
--ianore-preflight[k4 ] ]errors=all
1:名称: CALICO_IPV4POOL_CIDR
4.3 引用此文件
kubectl apply -f calico .yaml
kubectl get pods -n kube-system
4.4 显示节点状态
kubectl 获取 pod -n kube-system
kubectl 获取节点
5. 测试您的集群
评论前必须登录!
注册