open欧拉小白安装k8s各种报错

安装docker

  1. 配置yum
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 安装docker
sudo yum install -y docker-ce docker-ce-cli containerd.io

到这里如果系统配置没有问题就安装好了,如果没有配置好就是各种各样的报错,我有三台服务器,有的报错404,有的报错与open欧拉依赖冲突,纠结了几天没有办法,只能选择离线安装。具体可以参考下方链接
https://blog.csdn.net/weixin_42571882/article/details/134015815
然而问题并没有完全解决,在安装k8s还会报错依赖问题,我的解决方案是将docker-ce.repo和openEuler.repo全部换掉。
docker-ce.repo

[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://repo.huaweicloud.com/docker-ce/linux/centos/8/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/docker-ce/linux/centos/gpg

[docker-ce-stable-debuginfo]
name=Docker CE Stable - Debuginfo $basearch
baseurl=https://repo.huaweicloud.com/docker-ce/linux/centos/8/debug-$basearch/stable
enabled=0
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/docker-ce/linux/centos/gpg

[docker-ce-stable-source]
name=Docker CE Stable - Sources
baseurl=https://repo.huaweicloud.com/docker-ce/linux/centos/8/source/stable
enabled=0
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/docker-ce/linux/centos/gpg

[docker-ce-test]
name=Docker CE Test - $basearch
baseurl=https://repo.huaweicloud.com/docker-ce/linux/centos/8/$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/docker-ce/linux/centos/gpg

[docker-ce-test-debuginfo]
name=Docker CE Test - Debuginfo $basearch
baseurl=https://repo.huaweicloud.com/docker-ce/linux/centos/8/debug-$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/docker-ce/linux/centos/gpg

[docker-ce-test-source]
name=Docker CE Test - Sources
baseurl=https://repo.huaweicloud.com/docker-ce/linux/centos/8/source/test
enabled=0
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/docker-ce/linux/centos/gpg

[docker-ce-nightly]
name=Docker CE Nightly - $basearch
baseurl=https://repo.huaweicloud.com/docker-ce/linux/centos/8/$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/docker-ce/linux/centos/gpg

[docker-ce-nightly-debuginfo]
name=Docker CE Nightly - Debuginfo $basearch
baseurl=https://repo.huaweicloud.com/docker-ce/linux/centos/8/debug-$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/docker-ce/linux/centos/gpg

[docker-ce-nightly-source]
name=Docker CE Nightly - Sources
baseurl=https://repo.huaweicloud.com/docker-ce/linux/centos/8/source/nightly
enabled=0
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/docker-ce/linux/centos/gpg

openEuler.repo

#generic-repos is licensed under the Mulan PSL v2.
#You can use this software according to the terms and conditions of the Mulan PSL v2.
#You may obtain a copy of Mulan PSL v2 at:
#    http://license.coscl.org.cn/MulanPSL2
#THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
#IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
#PURPOSE.
#See the Mulan PSL v2 for more details.

[OS]
name=OS
baseurl=http://repo.openeuler.org/openEuler-24.03-LTS/OS/$basearch/
metalink=https://mirrors.openeuler.org/metalink?repo=$releasever/OS&arch=$basearch
metadata_expire=1h
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-24.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler

[everything]
name=everything
baseurl=http://repo.openeuler.org/openEuler-24.03-LTS/everything/$basearch/
metalink=https://mirrors.openeuler.org/metalink?repo=$releasever/everything&arch=$basearch
metadata_expire=1h
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-24.03-LTS/everything/$basearch/RPM-GPG-KEY-openEuler

[EPOL]
name=EPOL
baseurl=http://repo.openeuler.org/openEuler-24.03-LTS/EPOL/main/$basearch/
metalink=https://mirrors.openeuler.org/metalink?repo=$releasever/EPOL/main&arch=$basearch
metadata_expire=1h
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-24.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler

[debuginfo]
name=debuginfo
baseurl=http://repo.openeuler.org/openEuler-24.03-LTS/debuginfo/$basearch/
metalink=https://mirrors.openeuler.org/metalink?repo=$releasever/debuginfo&arch=$basearch
metadata_expire=1h
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-24.03-LTS/debuginfo/$basearch/RPM-GPG-KEY-openEuler

[source]
name=source
baseurl=http://repo.openeuler.org/openEuler-24.03-LTS/source/
metalink=https://mirrors.openeuler.org/metalink?repo=$releasever&arch=source
metadata_expire=1h
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-24.03-LTS/source/RPM-GPG-KEY-openEuler

[update]
name=update
baseurl=http://repo.openeuler.org/openEuler-24.03-LTS/update/$basearch/
metalink=https://mirrors.openeuler.org/metalink?repo=$releasever/update&arch=$basearch
metadata_expire=1h
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-24.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler

[update-source]
name=update-source
baseurl=http://repo.openeuler.org/openEuler-24.03-LTS/update/source/
metalink=https://mirrors.openeuler.org/metalink?repo=$releasever/update&arch=source
metadata_expire=1h
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-24.03-LTS/source/RPM-GPG-KEY-openEuler

换掉的原因主要是在学习视屏查资料时主要是centos系统,所以跟着他们对系统配置进行了一系列修改导致出问题了,所以需要将系统配置修改回来,并且配置好镜像加速(俺的理解是这样,不知道是不是)
修改后基本上就可以使用之前的指令安装docker了。也可以参考以下链接https://www.cnblogs.com/yunfeiyangyang/p/18207895
安装完后继续指令

  1. 启动
 systemctl enable docker --now
  1. 配置镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

到此如果没有问题就安装成功了,可以运行 docker ps等指令查看是否成功,若没有成功,我也没有办法了,祝各位好运。

安装k8s

  1. 基础配置(所有主机均要执行)
#各个机器设置自己的域名
hostnamectl set-hostname xxxx


# 将 SELinux 设置为 permissive 模式(相当于将其禁用)
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

#关闭swap
swapoff -a  
sed -ri 's/.*swap.*/#&/' /etc/fstab

#允许 iptables 检查桥接流量
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system

  1. 安装kubelet、kubeadm、kubectl`(所有主机均要执行)
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
   http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl
EOF


sudo yum install -y kubelet-1.20.9 kubeadm-1.20.9 kubectl-1.20.9 --disableexcludes=kubernetes

sudo systemctl enable --now kubelet

在安装时如果出现依赖冲突问题就有可能是之前openEuler.repo文件没有配置好。
3. 下载各个机器需要的镜像(所以主机均要)

sudo tee ./images.sh <<-'EOF'
#!/bin/bash
images=(
kube-apiserver:v1.20.9
kube-proxy:v1.20.9
kube-controller-manager:v1.20.9
kube-scheduler:v1.20.9
coredns:1.7.0
etcd:3.4.13-0
pause:3.2
)
for imageName in ${images[@]} ; do
docker pull registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/$imageName
done
EOF
   
chmod +x ./images.sh && ./images.sh
  1. 初始化主节点
    不要全部复制粘贴,将下方代码中的172.31.0.4改为自己master主机的ip地址。其余ip可以不改
#所有机器添加master域名映射,以下需要修改为自己的
echo "172.31.0.4  cluster-endpoint" >> /etc/hosts



#主节点初始化
kubeadm init \
--apiserver-advertise-address=172.31.0.4 \
--control-plane-endpoint=cluster-endpoint \
--image-repository registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images \
--kubernetes-version v1.20.9 \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=192.168.0.0/16

#所有网络范围不重叠


若创建失败,可能是前面基础配置有问题也有可能还是.repo文件有问题

[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
   http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl
  1. 在master主机上执行init时给的代码
  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config
  1. 安装网络组件
curl https://docs.projectcalico.org/v3.20/manifests/calico.yaml -O

kubectl apply -f calico.yaml

在此时可以用kubectl get nodes 查看master是否成功运行,很遗憾我没有于是可以用kubectl get pods -A查看pod的运行状态
在这里插入图片描述
可以看出coredns与calico有问题,于是又是疯狂查资料结果花费两三天还是没有解决,就看出日志中报错unable to update cni config
将k8s卸载重装,重装calico等还是没有用,再次查看事件发现
Normal Pulling 51m (x11 over 96m) kubelet Pulling image “docker.io/calico/cni:v3.20.6”
Warning Failed 20m (x14 over 94m) kubelet Failed to pull image “docker.io/calico/cni:v3.20.6”: rpc error: code = Unknown desc = context canceled
Warning Failed 16m (x267 over 94m) kubelet Error: ImagePullBackOff
主要是镜像拉取时出了问题,又联想到docker国内镜像被关了,所以机智的小脑袋一想认为是calico中镜像地址被关了拉取不到导致的。所以将calico.yaml文件中image地址改为能获取到的地址,并且重新运行calico.yaml文件
https://github.com/DaoCloud/public-image-mirror
该大神的服务器可以加载docker镜像,以供自己拉取

https://xn–tkrq60cewc.top/dcoker2/
该网址可以查看使用方法(不难,很方便)
然后使用 nano calico.yaml打开文件并且查询所有image,将image后的docker地址改为转换后的image地址,之后重新加载calico文件发现
在这里插入图片描述
好像可以,在启动中,再等一等
期间无聊自己手动拉取了一个iamge
在这里插入图片描述
7. 加入node节点

此处还是别乱负责,看自己master主机initial时给的Token等

kubeadm join cluster-endpoint:6443 --token x5g4uy.wpjjdbgra92s25pp \
	--discovery-token-ca-cert-hash sha256:6255797916eaee52bf9dda9429db616fcd828436708345a308f4b917d3457a22

在这里插入图片描述
可以可以,成功解决。
如果节点还是notready,可以在节点主机上使用docker自己拉取。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
华为欧拉是一款基于容器技术的云原生平台,支持Kubernetes等多种容器编排引擎的部署。以下是在欧拉上部署Kubernetes的一般性步骤: 1. 准备环境:在欧拉上选择一台云服务器作为主节点,为集群的其他节点创建虚拟机。准备好网络环境,确保所有节点之间可以互相通信。 2. 安装Docker:在所有节点上安装Docker,作为Kubernetes的运行时环境。可以使用欧拉提供的Docker镜像来安装Docker,也可以手动安装。 3. 安装Kubernetes:在主节点上安装Kubernetes控制平面组件,包括kube-apiserver、kube-controller-manager、kube-scheduler等。可以使用Kubeadm工具来快速安装和配置Kubernetes。 4. 配置网络插件:在集群中选择合适的网络插件,如Flannel、Calico等,并为其配置必要的参数,以实现容器之间的网络通信。 5. 添加节点:在欧拉上创建虚拟机,并将其加入到Kubernetes集群中。可以使用Kubeadm工具来自动添加节点,也可以手动添加。 6. 部署应用程序:使用Kubernetes的Deployment、Service、Ingress等资源对象来部署和管理应用程序。可以使用Kubectl命令行工具来创建、更新和删除这些资源对象。 需要注意的是,在部署Kubernetes时需要考虑到集群的可靠性、安全性和性能等方面的问题,并进行相应的配置和优化。具体的操作步骤和配置方法可以参考Kubernetes官方文档和欧拉官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值