一、实验环境
服务器:鲲鹏服务器
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集群就准备就绪了。
一、实验环境
服务器:鲲鹏服务器
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集群就准备就绪了。