本文目的
openEuler的官方源里有kubernetes 1.20,使用yum源安装是最快部署一个k8s集群的办法
硬件环境
主机名 | 系统 | 架构 | ip |
---|---|---|---|
master | openEuler release 22.03 (LTS-SP2) | arm | 192.168.3.11 |
edge | openEuler release 22.03 (LTS-SP2) | arm | 192.168.3.12 |
device | openEuler release 22.03 (LTS-SP2) | arm | 192.168.3.14 |
master节点部署
安装k8s基础组件
# 关闭防火墙及swap
swapoff -a
systemctl stop firewalld && systemctl disable firewalld
# 安装docker(18.09)
dnf install -y docker
systemctl enable docker && systemctl start docker
# 安装kubernetes(1.20)
dnf install -y kubernetes-kubeadm kubernetes-kubelet kubernetes-master
# 安装k8s依赖
dnf install -y conntrack
systemctl enable kubelet.service && systemctl start kubelet.service
# 初始化k8s集群
# --image-repository:指定要使用的镜像仓库,指定为aliyun镜像加速下载
# --kubernetes-version:k8s版本,openEuler仓库目前只有1.20.2这一个版本
# --pod-network-cidr:Pod网络的地址范围
# --service-cidr:Service的网络地址范围
# --cri-socket:如需指定其他容器引擎,可以加这个如--cri-socket=/var/run/isulad.sock
kubeadm init --apiserver-advertise-address=192.168.3.11 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.20.2 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16
集群初始化完成,保留屏幕出现的join命令
kubeadm join 192.168.3.11:6443 --token bl02x4.bow5nrt50fnudxrq \
--discovery-token-ca-cert-hash sha256:34083d0cd5ecc38150eeb184663fcb0fcfbd8095f5efd46fe01520fe4a03ff93
环境变量配置
# 配置环境变量
vi /etc/profile
# 在文件底部追加
export KUBECONFIG=/etc/kubernetes/admin.conf
# 应用改变
source /etc/profile
安装网络组件flannel
# 安装cni插件
dnf install -y containernetworking-plugins
# containerd容器运行时 cni相关文件默认路径在/usr/libexec/cni
# flannel 默认读取/opt/cni/bin路径
# 拷贝相关文件
mkdir -p /opt/cni/bin
cp /usr/libexec/cni/* /opt/cni/bin/
# 下载kube-flannel.yml文件放置到 /opt/yaml/kube-flannel.yml
# kube-flannel.yml文件链接:https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f /opt/yaml/kube-flannel.yaml
# 下载两个flannel的镜像(docker.io/flannel/flannel:v0.26.2,docker.io/flannel/flannel-cni-plugin:v1.6.0-flannel1)并导入
docker load -i flannel_master.tar
docker load -i flannel_cni.tar
验证效果
# 查看节点状态,此时应该只有一个节点且节点处于ready状态
kubectl get nodes
node节点部署
# 关闭防火墙及swap
swapoff -a
systemctl stop firewalld && systemctl disable firewalld
# 安装docker(18.09)
dnf install -y docker
systemctl enable docker && systemctl start docker
# 安装kubernetes(1.20)
dnf install -y kubernetes-kubeadm kubernetes-kubelet kubernetes-master
# 安装k8s依赖
dnf install -y conntrack
systemctl enable kubelet.service && systemctl start kubelet.service
# 安装cni插件
dnf install -y containernetworking-plugins
# containerd容器运行时 cni相关文件默认路径在/usr/libexec/cni
# flannel 默认读取/opt/cni/bin路径
# 拷贝相关文件
mkdir -p /opt/cni/bin
cp /usr/libexec/cni/* /opt/cni/bin/
# 下载两个flannel的镜像(docker.io/flannel/flannel:v0.26.2,docker.io/flannel/flannel-cni-plugin:v1.6.0-flannel1)并导入
docker load -i flannel_master.tar
docker load -i flannel_cni.tar
使用上面的join命令加入集群
kubeadm join 192.168.3.11:6443 --token bl02x4.bow5nrt50fnudxrq --discovery-token-ca-cert-hash sha256:34083d0cd5ecc38150eeb184663fcb0fcfbd8095f5efd46fe01520fe4a03ff93
验证集群加入成功
# 查看节点状态,此时节点都处于ready状态
kubectl get nodes