华为云云原生训练营学习(一)在鲲鹏部署k8s遇到的坑
【摘要】 近期参加云原生王者之路钻石集训营第二阶段云原生钻石课程,刚好有试用的鲲鹏云服务器,为了更好的学习云原生的相关知识,在鲲鹏服务器上搭建k8s集群。 1. 部署k8s首先要安装docker,根据华为云官方文档要求,docker推荐使用官方二进制包安装,其版本为docker-18.09.8及以上。但是在安装过程中,为了图方便,在github.com下载对应版本的docker.serv...
近期参加云原生王者之路钻石集训营第二阶段云原生钻石课程,刚好有试用的鲲鹏云服务器,为了更好的学习云原生的相关知识,在鲲鹏服务器上搭建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 <<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命令删除下载的镜像。
开始配置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的文件,在其中添加如下内容:
出现上图的问题,是要把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部署成功。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)