4 Kubctl 命令行管理工具

目录

1 查看集群状态

2 kubeconfig 配置文件

3 kubectl 常用命令

3.1 常用指令列表

3.2 kubectl 指令部署应用


本文目的:首先通过第一节“查看集群状态”来直接上手使用一些常用的Kubectl指令,然后通过Kubectl指令部署一个应用。

1 查看集群状态

1.1 查看K8S集群中的节点状态

只要机器上部署了kubelet,本指令就能查到该机器,Master机器也能被查到。

kubectl get node

1.2 列出K8S中所涉及到的所有资源

字段:资源名、缩写、组、是否支持命名空间、资源名称

kubectl api-resources

1.3 查看Master组件状态

kubectl get cs

然而,输入完上述指令后,默认情况下Matser组件中的scheduler和controller-manager没有被监听到,这是因为这两个组件的配置文件中端口号被默认配置为0,将下图中那一行注释掉即可。 

 如下图:分别注释到两个配置文件中的那一行

#分别打开配置文件,注释到端口为0的那一行
vi /etc/kubernetes/manifests/kube-controller-manager.yaml
vi /etc/kubernetes/manifests/kube-scheduler.yaml

#重启kubelet
systemctl restart kubelet

修改配置文件后:

 1.4 查看Apiserver代理的URL

kubectl cluster-info

 1.5 查看K8S集群详细信息

会列出特别多的信息

kubectl cluster-info dump

1.6 查看资源信息

kubectl describe <资源> <主机名称>

#查看集群中Matser节点的详细信息
kubectl describe node kubeadm-master

2 kubeconfig 配置文件

kubectl使用kubeconfig认证文件连接K8s集群,使用kubectl config指令生成kubeconfig文件。

默认情况下Matser节点上有该配置文件而其他Node节点上则没有。如果想在Node机器上访问,就必须也生成一份kubeconfig配置文件。

查看kubeconfig配置文件:

cat /root/.kube/config

3 kubectl 常用命令

3.1 常用指令列表

kubectl帮助文档,里面有个网址可查看更详细信息:

kubectl --help

kubectl常用命令整理后如下: 

                                                                kubectl管理命令汇总
         类型     命令                                               描述
          基础命令create通过文件名或标准输入创建资源
expose为Deployment、Pod创建Service
run在集群中运行一个特定的镜像
set在对象上设置特定的功能
explain文档参考资料
get显示一个或多个资源
edit使用系统编辑器编辑一个资源。
delete通过文件名、标准输入、资源名称或标签选择器来删除资源。
          部署命令rollout管理Deployment,Daemonset资源的发布(例如状态、发布记录、回滚等)
rolling-update滚动升级,仅限ReplicationController
scale对Deployment、ReplicaSet、RC或Job资源扩容或缩容Pod数量
autoscale为Deploy,RS,RC配置自动伸缩规则(依赖metrics-server和hpa)
       集群管理命令certificate修改证书资源
cluster-info显示集群信息
top查看资源利用率(依赖metrics-server)
cordon标记节点不可调度
uncordon标记节点可调度
drain驱逐节点上的应用,准备下线维护
taint修改节点taint标记
  故障诊断和调试命令describe显示资源详细信息
logs查看Pod内容器日志,如果Pod有多个容器,-c参数指定容器名称
attach附加到Pod内的一个容器
exec在容器内执行命令
port-forward为Pod创建本地端口映
proxy为KubernetesAPIserver创建代理
cp拷贝文件或目录到容器中,或者从容器内向外拷贝
           高级命令apply从文件名或标准输入对资源创建/更新
patch使用补丁方式修改、更新资源的某些字段
replace从文件名或标准输入替换一个资源
convert在不同API版本之间转换对象定义
           设置命令label给资源设置、更新标签
annotate给资源设置、更新注解
completionkubectl工具自动补全,source<(kubectlcompletionbash)(依赖软件包bash-completion)
           其他命令api-resources查看所有资源
api-versions打印受支持的API版本
config修改kubeconfig文件(用于访问API,比如配置认证信息)
help所有命令帮助
version查看kubectl和k8s版本

3.2 kubectl 指令部署应用

(1)部署镜像到K8S集群

#1.1 使用Deployment控制器部署镜像(生成Pod)到K8S集群中:
kubectl create deployment java-demo --image=lizhenliang/java-demo
#1.2 查看Pod
kubectl get pods
#1.3 查看资源信息(kubectl describe <资源类型> <具体名字>)
kubectl describe pod java-demo-56d54df448-2cw44

(2)使用Service将Pod暴露出去

#2.1 使用Service将Pod暴露出去(80端口是负载均衡的端口,8080是容器中应用程序的端口,NodePort是service的类型,用于让浏览器访问):
kubectl expose deployment java-demo --port=80 --target-port=8080 --type=NodePort
#2.2 获取service(随机生成的3xxxx端口用于从外部访问容器)
kubectl get service

 (3)访问应用

port通过kubectl get svc 获取,http://NodeIP:PORT/

到目前为止,已经介绍了通过kubectl指令在命令行中部署应用,在后面的学习中,会介绍通过yaml配置文件部署应用的方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值