k8s里面k8s跨namespace访问作用是什么?

集群的统一入口,各组件的协调者,提供了k8s所有资源对象的增删改查及watch等HTTPRest接口,这些对象包括pods,services、replicationcontrollers等,APIserver为REST操作提供服务,并为集群的共享状态提供前端,所有其他组件都通过该前端进行交互。处理后再提交给etcd数据库做持久化存储。

  用于基于策略的授权。

用google chrome浏览器,访问下域名,登录harbor,创建一个镜像仓库。如下图所示:

登录成功之后,会在/root/.docker/目录下生成一个认证文件

dashboad是一个web界面提供一些管理k8s的功能。

1.下载官方的yaml文件,并修改文件名

2.对外暴露一个端口,然后创建pod

需要上传一个补丁文件。

4.上传补丁文件,apply 启动补丁文件

}
输出容器在pod中的日志
指定输出格式,常用的有json、yaml、wide(详细列表)
递归处理-f,–filename中使用的目录。在需要管理时非常有用
持续跟踪命令的状态或者事件变化,类似tail -f功能
即使未连接任何组件,也要保持pod中容器上的stdin打开。
为pod中的每个容器分配了一个tty。

命令行敲出的指令分为2种,

只操作活动对象,无法审计、跟踪
项目大时,配置文件多,操作麻烦

直接使用命令去操作k8s资源,命令和参数一起出现

 

通过命令和配置文件去操作作k8s资源,命令还是那个命令,只不过参数都放在配置文件里面
 
 
使用apply创建资源,



 






AGE:运行时长,从启动到现在运行了多长时间


在master节点执行以下命令即可删除
# 先卸载节点,但是还未删除
 
还需要在work节点上执行以下命令来清空ini配置


 






# 执行后会返回一个 kubeadm 开头的命令
 



# 在工作节点上执行以下命令即可加入集群
 






 



 



 















记住,名称中不能用下划线_,可以用横行-


第一种创建方式–命令行创建


 
第二种创建方式–命令行 + 配置文件


创建一个名为namespace-dev.yaml的文件,内容如下(注意大小写,kind的头字母必须大写)


 
然后偶执行命令进行创建


 



需要注意的是,删除后,当前命名空间下的pod、deployment、container也会一起删掉





 
第二种–使用配置文件删除


 



 






 









READY:已准备好的实例数/总实例数








Init:0/2 : 正在初始化 已初始化完成数量/总数














加上-w 表示监视资源变动信息,此时命令行进入阻塞状态,如果pod有变化将会马上呈现出来;


 



# 如果不加 -n 参数,默认获取的是default下的pod,所以以下2个命令的执行结果是一样的
 



因为pod里面至少要有一个容器,所以pod是和容器一起创建的,新建一个文件pod.ymal,内容如下


 
然后执行命令并指定配置文件进行创建


 






如果只是单纯的删除pod,你会发现,删除了之后,k8s会自动启动了另一个pod,这是因为当前pod是由pod控制器创建的,控制器会监控pod状态,一旦pod死亡,会立即重建,所以想要删除pod就得先删除deployment。删除后,与此deployment关联的pod也会一起删除;


如果不删除delployment的话,这里的删除pod只是充当一个重启的作用;


如果是创建时未指定pod控制器,那就可以使用以下命令直接删除pod


 



1.为资源打标签(第一种方式:使用命令打标签)


# 为pod资源打标签,需要注意的是,打标签之前,pod必须提前创建好
 
2.为资源打标签(第二种方式:使用配置文件打标签)


以下示例是为pod资源打标签,这种方式是和pod一起创建的,新建一个配置文件 label.yaml


 



 



适合更新label值,前提是label的key必须已存在;


 



 



 






# 删除pod资源的表标签
# 删除node资源的标签
 

pod控制器有很多种,我们这里就用deployment

 
 

 
 

需要注意的是,一旦删除pod控制器,此pod控制器下的所有pod和容器也会一并删除;
# 第一种删除方式,直接命令删除
# 第二种删除方式,使用配置文件进行删除
 



1.创建service–命令行方式创建


默认创建的pod是只能对内访问的,所以需要创建一个对外的访问端口,创建一个service其实就是暴露对外的访问端口


 


















ClusterIP:默认值,它是Kubernetes系统自动分配的虚拟IP,只能在集群内部访问


NodePort:将Service通过指定的Node上的端口暴露给外部,通过此方法,就可以在集群外部访问服务


LoadBalancer:使用外接负载均衡器完成到服务的负载分发,注意此模式需要外部云环境支持


ExternalName: 把集群外部的服务引入集群内部,直接使用


创建好service之后,查看service信息,可以看到,暴露的端口为:30474,


外部访问:因为博主这边是虚拟机,所以使用主机的ip:端口,也就是192.168.253.131:30474就可以访问到页面了;





 PORT(S) # 我们看到上面有2个端口80:30474,80是内部访问端口,30474是外部访问的端口;
 

 

 
 
 
 




 

如果是由service创建出来的endpoints,删除后会马上创建出一个同名的endpoint出来,如果要删除必须先删除service
 

因为每次创建一个service,k8s会自动创建一个同名的 Endpoint出来,所我们直接创建service就可以了

}

我要回帖

更多关于 k8s跨namespace访问 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信