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

举报
wuyicom 发表于 2021/07/22 20:39:11 2021/07/22
【摘要】     近期参加云原生王者之路钻石集训营第二阶段云原生钻石课程,刚好有试用的鲲鹏云服务器,为了更好的学习云原生的相关知识,在鲲鹏服务器上搭建k8s集群。    1. 部署k8s首先要安装docker,根据华为云官方文档要求,docker推荐使用官方二进制包安装,其版本为docker-18.09.8及以上。但是在安装过程中,为了图方便,在github.com下载对应版本的docker.serv...

1.png

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

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

2.png

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

3.png

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

4.png

5.png

6.png

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

7.png

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

kubeadm config images list

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

8.png

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

cat > /etc/docker/daemon.json <<EOF

{

  "registry-mirrors": [

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

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

  ],

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

}

EOF

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

9.png

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

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

如图所示:

10.png

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

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

11.png

    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种方法比较方便。

12.png

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

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

mkdir /opt/k8s

cd /opt/k8s

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

13.png

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

14.png

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

selector:

   matchLabels:

     app: nginx-deployment

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

kubectl create -f nginx_deploy.yaml

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

kubectl get pod --all-namespaces -o wide

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

15.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。