k8s离线搭建


私网使用三台机器,搭建k8s,遇到的一些问题,分享一下。

一、离线安装操作参考:https://blog.51cto.com/u_7075695/3022173 https://blog.51cto.com/zlyang/2425318 这一篇写得挺详细了
      1、其中sysctl文件配置修改不生效的问题,参考以下两个文档:http://lnmp.ailinux.net/sysctl
       2、node节点连接master节点8080端口报错:
             解决如下:
     1、#在Master节点运行下面命令将admin.conf文件拷贝到从节点:
      sudo scp /etc/kubernetes/admin.conf root@{node_ip}:~
    2、#在Node节点运行下面命令配置环境变量:
                    export KUBECONFIG=$HOME/admin.config

      3、 因这几个机器先安装的docker,docker与k8s版本不兼容问题,master节点初始化的时候可以使用 --ignore-preflight-errors=SystemVerification ,可以跳过该问题,我是测试使用这样安装简单些,如果是生产环境不建议这样使用。

二、K8S使用

K8S上创建应用:创建pod资源两种方式: kubectl命令 && yaml文件
kubectl命令创建:参考 https://blog.csdn.net/weixin_45691464/article/details/106006125
yaml文件方式:参考https://blog.csdn.net/972301/article/details/122680261
https://blog.csdn.net/weixin_39799646/article/details/112434255

三、master和node上运行的组件
master 组件:
kube-apiserver
Kubernetes API, 集群的统一入口,各组件协调者,以RESTful API提供接口服务,所有对象资源的增删改查和监听操作都交给APIServer处理后再提交给Etcd存储。
kube-controller-manager
处理集群中常规后台任务,一个资源对应一个控制器,而ControllerManager就是负责管理这些控制器的。
kube-scheduler
根据调度算法为新创建的Pod选择一个Node节点,可以任意部署,可以部署在同一个节点上,也可以部署在不同的节点上。
etcd
分布式键值存储系统。用于保存集群状态数据,比如Pod、Service等对象信息。
node组件:
kubelet
kubelet是Master在Node节点上的Agent,管理本机运行容器的生命周期,比如创建容器、Pod挂载数据卷、下载secret、获取容器和节点状态等工作。kubelet将每个Pod转换成一组容器。
kube-proxy
在Node节点上实现Pod网络代理,维护网络规则和四层负载均衡工作。
docker或rocket