目录
设置内核参数,注意:安装完成docker-ce并启动之后方可设置!
三、安装kubeadm和kubectl;所有节点都需要安装!
目前看到的是NotReady状态,是由于没有安装网络插件的原因。ROLES角色一栏显示“none”,可以通过一下命令修改角色名称:
安装calico组件的相关镜像calico.tar、calico.apiserver.tar(需要自行下载)
考入custom-resources.yaml 和 tigera-operator.yaml
一、 服务器环境及初始化
1、架构分析
集群角色 | 主机名 | 操作系统 | IP地址 |
---|---|---|---|
master | master | OpenEuler24.03 | 192.168.33.30 |
node | node1 | OpenEuler24.03 | 192.168.33.31 |
node | node2 | OpenEuler24.03 | 192.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