华为云云原生训练营学习(一)在鲲鹏部署k8s遇到的坑

网友投稿 611 2022-05-29

近期参加云原生王者之路钻石集训营第二阶段云原生钻石课程,刚好有试用的鲲鹏云服务器,为了更好的学习云原生的相关知识,在鲲鹏服务器上搭建k8s集群。

1. 部署k8s首先要安装docker,根据华为云官方文档要求,docker推荐使用官方二进制包安装,其版本为docker-18.09.8及以上。但是在安装过程中,为了图方便,在github.com下载对应版本的docker.service,启动docker出现下面情况:

原因是下载下来的docker.service有问题,解决办法是重新配置docker.service文件,如下图所示:

2. 在安装k8s集群时,根据华为官方文档步骤操作(https://support.huaweicloud.com/dpmg-kunpengcpfs/kunpengk8s_04_0004.html),配置的k8s源显示最新版本是1.14.2,达不到文档环境配置提示的最低版本。如图所示:

提工单后,华为工程师帮忙解决,重新发链接:https://support.huaweicloud.com/instg-kunpengdbs/kunpengmysqlmgr_03_0007.html,按照文档重新配置源后,可以获取最新的k8s版本。关于这个问题已经提交云声,希望能更新一下k8s源的安装地址。

3. 查看下载节点初始化所需镜像

kubeadm config images list

但是无法从DockerHub上下载镜像,如图所示:

解决办法是根据https://blog.csdn.net/subfate/article/details/103774072提供的方法修改docker的下载的镜像源。添加 /etc/docker/daemon.json 文件:

cat > /etc/docker/daemon.json <

{

"registry-mirrors": [

"https://a8qh6yqv.mirror.aliyuncs.com",

"http://hub-mirror.c.163.com"

],

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

}

EOF

下载好的镜像因和kubeadm列出的镜像名不一致,使用docker tar命令修改镜像名。 同时使用docker rmi命令删除下载的镜像。

开始配置k8s集群,在主节点上执行集群初始化命令

kubeadm init --pod-network-cidr=10.244.0.0/16

如图所示:

根据图片所示执行下面的步骤:

mkdir -p $HOME/.kube

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

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

export KUBECONFIG=/etc/kubernetes/admin.conf

在各节点添加加入集群命令:

kubeadm join 192.168.0.146:6443 --token 79dfue.05k9pg8621pjxuk5 --discovery-token-ca-cert-hash sha256:32fecf341e684009d6786ebfeadf9098d01a2a061d3a3785014e2ecd715dca53

4. 添加Flannel网络插件,在主节点上执行如下命令安装Flannel网络插件。有两种方法(1)是登录gitee.com,从https://gitee.com/mirrors/flannel/blob/master/Documentation/下载kube-flannel.yaml后,上传到k8s主节点的服务器上。(2)直接在k8s主节点的服务器上使用wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml获取,记得要查看下载kube-flannel.yml文件是否是格式正确。这个特别注意,这个网址对网络有要求,如果是弹性云服务器是没问题,如果是自己在虚拟机上搭建的k8s上,有可能无法下载。所以建议使用第1种方法比较方便。

5. 验证K8s集群的部署结果

(1)建立一个k8s目录方便存放yaml文件

mkdir /opt/k8s

cd /opt/k8s

(2)在k8s主节点中创建一个名为nginx_deploy.yaml的文件,在其中添加如下内容:

华为云云原生训练营学习(一)在鲲鹏部署k8s遇到的坑

出现上图的问题,是要把apiVersion: apps/v1beta1修改为apiVersion: apps/v1,已经解决上面的错误,但是是会报错,修改如图所示:

在副本设置下面添加下面语句:

selector:

matchLabels:

app: nginx-deployment

(3)创建完毕后执行如下命令,部署节点。

kubectl create -f nginx_deploy.yaml

(4)执行pod命令,查看K8s创建这个deployment的过程。

kubectl get pod --all-namespaces -o wide

如图所示:说明k8s部署成功。

Docker 云原生 鲲鹏

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:传统企业管理咨询服务接力知识图谱技术进行服务提升
下一篇:Vue进阶(九十六):VuePress
相关文章