开发者
鲲鹏服务器上快速安装k8s单节点集群
鲲鹏服务器上快速安装k8s单节点集群
原创
发表于03/28
20

一、实验环境

服务器:鲲鹏服务器

OS:openEuler22.03-SP3

二、安装步骤

按步骤执行以下命令:

systemctl stop firewalld && systemctl disable firewalld

setenforce 0

sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

swapoff -a #如果是生产环境还需要永久关闭交换区,否则服务器重启之后kubelet服务器无法正常启动

sysctl -w net.ipv4.ip_forward=1

yum install docker #注意k8s-1.24不再支持docker,请选择containerd

编辑/etc/docker/daemon.json,添加或修改为以下内容:

{

  "exec-opts": ["native.cgroupdriver=systemd"]

}

执行以下命令启动docker服务:

systemctl daemon-reload

systemctl restart docker

systemctl enable docker

执行以下命令修改系统配置:

cat <<EOF | tee /etc/modules-load.d/k8s.conf

br_netfilter

EOF

 

cat <<EOF | tee /etc/sysctl.d/k8s.conf

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

EOF

sysctl --system

执行以下命令添加k8s的repo源:

cat <<EOF | tee /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetes

baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-aarch64/

enabled=1

gpgcheck=1

repo_gpgcheck=1

gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

EOF

执行以下命令,安装k8s基础组件并启动kubelet服务:

yum install -y kubelet-1.22.3 kubeadm-1.22.3  kubectl-1.22.3 kubernetes-cni-1.1.1 --disableexcludes=kubernetes

systemctl enable --now kubelet

执行以下命令初始化k8s:

kubeadm init 

如果初始化报错,输入journalctl -xeu kubelet -l查看报错信息,此时初始化命令会根据需要安装的cni插件略有不同,安装flannel组件需要添加--pod-network-cidr=10.244.0.0/16,安装calico需要添加--pod-network-cidr=192.168.0.0/16

如果初始化成功,执行以下命令查看当前集群节点和pod:

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

export KUBECONFIG=/etc/kubernetes/admin.conf

kubectl get node

kubectl get pods -A

如果所有的pod中,dns以外的pod都处于running状态,则集群状态正常,其中两个coredns的状态为pending,需要安装cni插件之后才能处于running状态

只需要安装其中一种cni插件即可。

此时只有一个节点,并且节点角色为master,通常情况下master上是不能启动其他pod的,需将master节点进行去污处理,执行以下命令去污:

kubectl taint nodes --all node-role.kubernetes.io/master- #所有节点去污

接下来安装cni插件,保证coredns的pod正常运行,以安装flannel插件为例:

kubectl apply -f https://gitee.com/mirrors/flannel/blob/master/Documentation/kube-flannel-old.yaml #k8s<1.17.0

或者

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml #k8s>=1.17.0

安装好flannel插件后所有pod的状态都会变成running,此时k8s集群就准备就绪了。

收藏举报
Level 1
0
帖子
0
粉丝
0
获赞