• 首页
  • Qt文档
  • DTK文档
  • 玲珑文档
  • k8s安装部署使用

    k8s部署


    k8s安装

    安装包获取

    安装包获取地址:http://<ip地址>/kubernetes/v1.18.5/release/k8s_all.tgz

    关闭缓冲磁盘

    执行命令:sudo swapoff -a

    登陆harbor仓库

    执行命令:sudo docker login harbor.sh.deepin.com , 输出用户名和密码后登陆

    修改kubeadm_arch.yaml文件

    修改内容:

    Ip修改为当前机器的地址: advertiseAddress:xx.xx.xx.xx , name修改为本机名称:name: xxxx-pc

    清理历史残留K8s内容

    执行脚本命令:./clean.sh 6,参数是可变的。

    1:停止容器 2:删除容器 3:删除none镜像 4:删除所有镜像 5:一条龙包含前面操作 6:解决init端口占用等其他问题

    自动化部署脚本

    执行命令:./auto.sh

    安装测试

    查看是否服务端,客户端启动正常:kubectl version

    查看主节点是否正常(ready):kubectl get nodes

    查看pod是否正常:kubectl get pods —all-namespaces

    k8s安装部署注意点


    部署注意点

    在kubeadm init过程中出现 docker pull failed 的问题

    原因: 未登陆docker帐号,使用如下指令login

    解决方法: docker login harbor.sh.deepin.com,然后输入用户名和密码

    出现ports in used 的问题

    原因: 在init之前没有做清理动作,使用如下指令清理

    解决方法: 执行命令 ./clean_all.sh

    coredns故障 /etc/coredns/Corefile问题

    解决方法: https://blog.csdn.net/textdemo123/article/details/106126671

    kubectl get pods —all-namespaces查看镜像出现coredns的两个pod起不来的问题

    原因: /etc/cni目录的缺失导致,因为cni目录是在加载flannel.yaml文件的时候生成,可能是在加载flannel.yaml文件产生的,是文件中声明的镜像架构不匹配导致

    解决方法: 把flannel.yaml文件中的镜像架构改为本机器架构,再进行apply

    The connection to the server localhost:8080 was refused - did you specify the right host or port?

    解决方法:执行命令

    mkdir -p $HOME/.kube

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

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

    节点添加注意点


    无法添加从节点到主节点

    原因有以下几点:

    确认join命令是在从节点机器部署,确保环境干净,主节点能看到从节点的信息

    从节点kubeadm join时可能出现10250 in used 说明从节点占用了端口,使用清理脚本,注意由于守护进程的关系,部分残留配置未删除干净也会导致失败,继续清除

    kubeadm join过程中会出现Node existed,因为主节点未删除现有的从节点导致,删除kubectl delete node node_name即可

    添加节点前需先修改hostname,不能有冲突,如hostname相同会返回已存在的信息

    出现not ready问题

    原因: 可能是正在拉取镜像,或者缺少镜像

    token过期问题

    原因: init token保存时间默认为24h,过期后采用如下方法重新生成token

    解决方法:

    (1) 生成token: kubeadm token create

    (2) 查看token: kubeadm token list

    (3) 获取哈希值: openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed ‘s/^. //‘*

    如何修改节点角色

    执行命令:kubectl label nodes master02 node-role.kubernetes.io/node2=

    k8s相关查看文档


    kubectl常用命令:https://cloud.tencent.com/developer/article/1140076

    官方参考文档:https://kubernetes.io/zh/docs/concepts/architecture/