本文目的

openEuler的官方源里有kubernetes 1.20,使用yum源安装是最快部署一个k8s集群的办法

硬件环境
主机名系统架构ip
masteropenEuler release 22.03 (LTS-SP2)arm192.168.3.11
edgeopenEuler release 22.03 (LTS-SP2)arm192.168.3.12
deviceopenEuler release 22.03 (LTS-SP2)arm192.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