• Kubernetes kubeconfig配置文件


    因为部署的jenkins和k8s不在同一台服务器,且不能ssh过去,运维朋友告诉我,可以把配置文件移动过去,在安装kubectl就能执行了,下面就简单描述一下原因。

    在node节点上可以执行kubectl命令吗?

    image-20210721224435707
    localhost:8080 这个端口是k8s api(kube-apiserver非安全端口)的端口,在master上面可以执行成功其实走的是配置文件。但是在node上连接的是本地的非安全端口。

    其实还有一个对外端口是6443,这个是kube-apiserver监听的,masterip:6443安全端口

    [root@k8s-master ~]#  netstat -tpln | grep 6443
    tcp6       0      0 :::6443                 :::*                    LISTEN      9261/kube-apiserver
    [root@k8s-master ~]#
    

    什么叫安全端口,什么叫非安全端口

    kube-apiserver两个端口:

    • localhost:8080 非安全端口(不需要认证,没有加入认证机制),是kubectl默认先连接8080,如果你配置kubeconfig(.kube/config)就直接走这个配置连接的安全端口(在master上没有8080端口,走的是kubeconfig)
    • masterip:6443 安全端口 ,提供了内部授权的机制,比如登入网站想要输入用户名密码才能登入。
      kubeadm安装的默认禁用了8080端口,二进制安装默认是启用的,他们两个区别在于有没有加入身份认证,即鉴权。这个文件在这个目录下面,在root家目录下面。这个配之文件是在安装最后一步拷贝过来.

    image-20210721224704791

    最后,拷贝连接k8s集群的认证文件到默认路径下

    mkdir -p $HOME/.kube
      sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
      sudo chown $(id -u):$(id -g) $HOME/.kube/config
    

    可以看到读取到的是该配置文件

    image-20210721224835283

    *关闭8080端口就是希望你使用配置文件去连接安全端口,*这样是安全的,非安全端口是绝对不能对外提供服务的,如果对外提供服务别人扫描到你api做一些恶意的操作,整个集群可能就挂了,即使有这个端口也是监听在本地,也就是只能这台机器去连接。

    让Node使用kubectl命令


    现在知道了kubectl怎么连接集群和管理集群,它是通过kubeconfig这个文件连接过去的。这个文件到底是怎么样生成的呢?

    [root@k8s-master .kube]# scp /root/.kube/config  root@192.168.1.151:/root
    root@192.168.1.151's password:
    config                                                                                                                    100% 5453     3.7MB/s   00:00
    [root@k8s-master .kube]#
    

    image-20210721225034962

    kubeconfig生成与文件结构


    kubeconfig这个文件是通过kubectl config指令生成的

    image-20210721225230781

    在上面部分是配置集群的,即要连接的k8s集群主节点IP是多少,并且里面包含了相关证书。

    Context指定上下文,和指定当前使用哪个上下文。

    在配置文件当中可能会存在多个集群,现在只有一个集群是我刚刚搭建的。你再搭建一个集群是可以将两个配置文件进行合并,两个配置文件合并在一个配置文件里面。合并在一起就可以使用这一个配置文件去切换着连接两个不通的集群,切换的操作实际上就是指定上下文的操作。(上下文引用了集群信息,和客户端信息)

    两个文件合并为一个文件,这个得修改要不冲突

     name: kubernetes  修改为  name: kubernetes1
    users:
    - name: kubernetes-admin  修改为 kubernetes-admin1
    

    name: kubernetes-admin1@kubernetes1 这样就切换到另外一个集群了,最后是客户端的认证,即客户端以什么身份连接过来的,上下文就是资源的关联。

    参考:Kubernetes kubeconfig配置文件详细解读_小楼一夜听春雨,深巷明朝卖杏花-CSDN博客_kubeconfig

  • 相关阅读:
    jpa命名规则 jpa使用sql语句 @Query
    spring data jpa 查询No property ... found for...Did you mean '...'?
    maven配置sqlServer的依赖
    SpringBoot 使用Swagger2打造在线接口文档(附汉化教程)
    本地git库gitlab库链接服务器库 idea git 配置 gitlab 配置 git生成ssh公钥
    连接sqlServer数据库&jpa调用存储过程Java获取存储过程返回的多个结果集JAVA调用sqlserver存储过程的实现(返回多个结果集的实现)jdbc多结果集(getMoreResults)
    Springmvc的handler method参数绑定常用的注解
    Java map 详解
    Http请求中Content-Type讲解以及在Spring MVC注解中produce和consumes配置详解
    @Controller和@RestController的区别
  • 原文地址:https://www.cnblogs.com/dalianpai/p/15042011.html
Copyright © 2020-2023  润新知