目录

一、 服务器环境及初始化

1、架构分析

2、初始化(所有节点都需要初始化!)

清空Iptales默认规则及关闭防火墙

设置内核参数,注意:安装完成docker-ce并启动之后方可设置!

二、安装Docker环境;所有节点都需要安装!

1、安装Docker

安装cri-docker(编译安装)

安装libcgroup

三、安装kubeadm和kubectl;所有节点都需要安装!

配置yum源

安装

设置kubectl开机自启动

四、部署Master节点

配置管理集群文件

五、部署node节点

查看集群状态kubectl get nodes 

目前看到的是NotReady状态,是由于没有安装网络插件的原因。ROLES角色一栏显示“none”,可以通过一下命令修改角色名称:

六、部署网络插件

安装calico组件的相关镜像calico.tar、calico.apiserver.tar(需要自行下载)

分别加载两个镜像包

docker load -icalico.tar

考入calico文件

考入custom-resources.yaml  和 tigera-operator.yaml

读取文件

修改另一个配置文件

读取修改的文件

查看是否运行


一、 服务器环境及初始化

1、架构分析

集群角色主机名操作系统IP地址
mastermasterOpenEuler24.03192.168.33.30
nodenode1OpenEuler24.03192.168.33.31
nodenode2OpenEuler24.03192.168.33.32

2、初始化(所有节点都需要初始化!)

  • 清空Iptales默认规则及关闭防火墙

iptables -t nat -F                             #清除nat表中所有网络地址转换规则

iptables -t filter -F                           #清除filter表中的数据包过滤规则

systemctl disable --now firewalld  #关闭防火墙并开机不自启

  • 关闭SELINUX

setenforce 0                                     #关闭安全上下文

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config   #完全关闭

  • 关闭Swap交换空间

swapoff -a                                         #关闭交换空间
sed -i 's/.*swap.*/#&/' /etc/fstab        #注释所有交换空间挂载配置

  • 设置主机名

hostnamectl set-hostname master

hostnamectl set-hostname node1

hostnamectl set-hostname node2

  • 编写hosts文件

vim /etc/hosts 
cat << EOF > /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.33.31    master
192.168.33.31    node1
192.168.33.32   node2
EOF

###拷贝到node节点
scp /etc/hosts 192.168.33.31:/etc
scp /etc/hosts 192.168.33.32:/etc

  • 设置内核参数,注意:安装完成docker-ce并启动之后方可设置!

vim /etc/sysctl.conf

net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1

modprobe br_netfilter
sysctl net.bridge.bridge-nf-call-ip6tables=1
sysctl net.bridge.bridge-nf-call-iptables=1

sysctl -p

二、安装Docker环境;所有节点都需要安装!

1、安装Docker

  • 配置阿里源

vim、/etc/yum.repos.d/docker-ce.repo

cat << EOF >> /etc/yum.repos.d/docker-ce.repo
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com//docker-ce/linux/centos/9/x86_64/stable/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
EOF

  • 安装docker

yum install -y docker-ce

  • 启动docker

systemctl enable --now docker

  • 安装cri-docker(编译安装)

  • 安装libcgroup

yum install -y libcgroup

  • 修改CRI启动脚本

vim /usr/lib/systemd/system/cri-docker.service

--pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9

  • 启动cri并设开机自启

systemctl daemon-reload
systemctl enable --now cri-docker

三、安装kubeadm和kubectl;所有节点都需要安装!

  • 配置yum源

cat <<EOF | tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/rpm/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/rpm/repodata/repomd.xml.key
EOF

  • 安装

yum install -y kubelet kubeadm kubectl

  • 设置kubectl开机自启动

systemctl enable kubelet && systemctl start kubelet

四、部署Master节点

在k8s-master节点执行下述命令生成证书:

kubeadm init --apiserver-advertise-address=192.168.33.30 --image-repository=registry.aliyuncs.com/google_containers --kubernetes-version=v1.28.15 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --cri-socket=unix:///var/run/cri-dockerd.sock

  • 证书有效时24小时,超时后重新生成
kubeadm token create --print-join-command
  • 配置管理集群文件

mkdir .kube

cp /etc/kubernetes/admin.conf  /.kube/config

五、部署node节点

分别在k8s-node1和k8s-node2中执行:

kubeadm join 192.168.33.30:6443 --token won2ai.l42m4yaopcodx95u --discovery-token-ca-cert-hash sha256:9ffef3874fba3439ecd915597f79aff21f275ea6edfe2cb99f8e14517a27b376   --cri-socket=unix:///var/run/cri-dockerd.sock

  • 查看集群状态
    kubectl get nodes 

  • 目前看到的是NotReady状态,是由于没有安装网络插件的原因。ROLES角色一栏显示“none”,可以通过一下命令修改角色名称:

kubectl label node k8s-master node-role.kubernetes.io/master=master
kubectl label node k8s-node1 node-role.kubernetes.io/worker=worker
kubectl label node k8s-node2 node-role.kubernetes.io/worker=worker

六、部署网络插件

安装calico组件的相关镜像calico.tar、calico.apiserver.tar(需要自行下载)

  • 分别加载两个镜像包

docker load -icalico.tar

docker load -i calico-apiserver.tar

  • 考入calico文件

考入custom-resources.yaml  和 tigera-operator.yaml

  • 读取文件

kubectl create -f tigera-operator.yaml 

  • 修改另一个配置文件

vim custom-resources.yaml 

修改cidr “ip”

改为与“kubeadm init”命令中指定的 Pod 网络CIDR 地址范围保持一致

  • 读取修改的文件

kubectl create -f custom-resources.yaml 

  • 查看是否运行

kubectl -n tigera-operator get pod

Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐