当前位置: 首页 > news >正文

k8s命令式对象管理和配置

kubectl补全: 

# dnf install -y bash-completion
# echo "source <(kubectl completion bash)" >> ~/.bashrc
# kubectl completion bash > /etc/bash_completion.d/kubectl 

命令式对象管理

kubectl命令

# 查看所有pod
kubectl get pod
# 查看某个pod
kubectl get pod pod_name
# 查看某个pod,以yaml格式展示结果
kubectl get pod pod_name -o yaml

查看命名空间   并  查看其中一个命名空间以yaml  或者以json格式

 资源类型

 kubectl api-resources

经常使用的资源有下面这些 

 例子:看日志

看集群状态

 

 下面以一个namespace / pod的创建和删除简单演示下命令的使用:

[root@k8s-master01 ~]# kubectl create ns dev
namespace/dev created
[root@k8s-master01 ~]# kubectl get ns dev -o yaml 
apiVersion: v1
kind: Namespace
metadata:creationTimestamp: "2024-05-25T07:05:24Z"labels:kubernetes.io/metadata.name: devname: devresourceVersion: "12664"uid: f1ab170b-f87b-4e02-883c-3343e89047c2
spec:finalizers:- kubernetes
status:phase: Active# 在此namespace下创建并运行一个nginx的Pod
[root@k8s-master01 ~]# kubectl run pod --image=nginx -n dev
pod/pod created# 查看新创建的pod
[root@k8s-master01 ~]#  kubectl get pod -n dev
NAME   READY   STATUS    RESTARTS   AGE
pod    1/1     Running   0          18s# 删除指定的pod
[root@k8s-master01 ~]# kubectl delete ns dev
namespace "dev" deleted

 命令式对象配置

命令式对象配置就是使用命令配合配置文件一起来操作kubernetes资源。

# vim nginxpod.yaml
apiVersion: v1
kind: Namespace
metadata:name: dev
[root@k8s-master01 test]# kubectl create -f nginxpod.yaml 
namespace/dev created
[root@k8s-master01 test]# kubectl get ns
NAME              STATUS   AGE
default           Active   12d
dev               Active   25s
kube-node-lease   Active   12d
kube-public       Active   12d
kube-system       Active   12d
tigera-operator   Active   5d22h
# vim pod1.yaml
apiVersion: v1
kind: Pod
metadata:name: nginxpodnamespace: dev
spec:containers:- name: nginx-containersimage: nginx:1.14-alpine[root@k8s-master01 test]# kubectl create -f po1.yaml 
pod/nginxpod created
[root@k8s-master01 test]# kubectl get pod -n dev -o wide 
NAME       READY   STATUS    RESTARTS   AGE   IP              NODE         NOMINATED NODE   READINESS GATES
nginxpod   1/1     Running   0          90s   172.16.58.195   k8s-node02   <none>           <none>

或者

删除

[root@k8s-master01 test]# kubectl delete -f nginxpod.yaml 
namespace "dev" deleted

总结: 其实声明式对象配置就是使用apply描述一个资源最终的状态(在yaml中定义状态)

使用apply操作资源: 如果资源不存在,就创建,相当于 kubectl create

                                   如果资源已存在,就更新,相当于 kubectl patch

扩展:kubectl可以在node节点上运行吗 ?

kubectl的运行是需要进行配置的,它的配置文件是$HOME/.kube,如果想要在node节点运行此命令,需要将master上的.kube文件复制到node节点上,即在master节点上执行下面操作:

# scp -r $HOME/.kube k8s-node01:$HOME/

服务部署

接下来在kubernetes集群中部署一个nginx程序,测试下集群是否在正常工作。

# 部署nginx
[root@master ~]# kubectl create deployment nginx --image=nginx:1.14-alpine
deployment.apps/nginx created# 暴露端口
[root@master ~]# kubectl expose deployment nginx --port=80 --type=NodePort
service/nginx exposed# 查看服务状态
[root@master ~]# kubectl get pods,service

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 《计算机网络微课堂》2-3 传输方式
  • Python 点云平面分割【RANSAC算法】
  • Python案例题目,入门小白题
  • 安卓分身大师4.6.0解锁会员安卓14可用机型伪装双开多开
  • Git使用笔记
  • 蓝桥杯杨辉三角
  • 安卓手机APP开发__近距离无线通信(NFC)概述
  • WordPress Country State City Dropdown CF7插件 SQL注入漏洞复现(CVE-2024-3495)
  • 12秒窃走2500万美元加密货币,麻省理工毕业的黑客两兄弟被捕
  • 【杂七杂八】Huawei Gt runner手表系统降级
  • DOS学习-目录与文件应用操作经典案例-type
  • C# Winform实现五子棋游戏(代完善)
  • 栈——顺序存储
  • 【数据结构】【C语言】堆~动画超详细解读!
  • java解析json复杂数据补充
  • ES6指北【2】—— 箭头函数
  • 0x05 Python数据分析,Anaconda八斩刀
  • 10个确保微服务与容器安全的最佳实践
  • co.js - 让异步代码同步化
  • eclipse的离线汉化
  • js 实现textarea输入字数提示
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • PHP 7 修改了什么呢 -- 2
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 基于Android乐音识别(2)
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #Linux(帮助手册)
  • #vue3 实现前端下载excel文件模板功能
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (C++20) consteval立即函数
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (七)Flink Watermark
  • (实测可用)(3)Git的使用——RT Thread Stdio添加的软件包,github与gitee冲突造成无法上传文件到gitee
  • (顺序)容器的好伴侣 --- 容器适配器
  • (转)拼包函数及网络封包的异常处理(含代码)
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .gitignore不生效的解决方案
  • .net Application的目录
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .net经典笔试题
  • .NET是什么
  • @Query中countQuery的介绍
  • @requestBody写与不写的情况
  • @Validated和@Valid校验参数区别
  • [000-002-01].数据库调优相关学习
  • [Android View] 可绘制形状 (Shape Xml)
  • [Android] Binder 里的 Service 和 Interface 分别是什么
  • [BUUCTF]-PWN:wustctf2020_number_game解析(补码,整数漏洞)