不做大哥好多年 不做大哥好多年
首页
  • MySQL
  • Redis
  • Elasticsearch
  • Kafka
  • Etcd
  • MongoDB
  • TiDB
  • RabbitMQ
  • 01.GO基础
  • 02.面向对象
  • 03.并发编程
  • 04.常用库
  • 05.数据库操作
  • 06.Beego框架
  • 07.Beego商城
  • 08.GIN框架
  • 09.GIN论坛
  • 10.微服务
  • 01.Python基础
  • 02.Python模块
  • 03.Django
  • 04.Flask
  • 05.SYL
  • 06.Celery
  • 10.微服务
  • 01.Java基础
  • 02.面向对象
  • 03.Java进阶
  • 04.Web基础
  • 05.Spring框架
  • 100.微服务
  • Docker
  • K8S
  • 容器原理
  • Istio
  • 数据结构
  • 算法基础
  • 算法题分类
  • 前置知识
  • PyTorch
  • 01.Python
  • 02.GO
  • 03.Java
  • 04.业务问题
  • 05.关键技术
  • 06.项目常识
  • 10.计算机基础
  • Linux基础
  • Linux高级
  • Nginx
  • KeepAlive
  • ansible
  • zabbix
  • Shell
  • Linux内核

逍遥子

不做大哥好多年
首页
  • MySQL
  • Redis
  • Elasticsearch
  • Kafka
  • Etcd
  • MongoDB
  • TiDB
  • RabbitMQ
  • 01.GO基础
  • 02.面向对象
  • 03.并发编程
  • 04.常用库
  • 05.数据库操作
  • 06.Beego框架
  • 07.Beego商城
  • 08.GIN框架
  • 09.GIN论坛
  • 10.微服务
  • 01.Python基础
  • 02.Python模块
  • 03.Django
  • 04.Flask
  • 05.SYL
  • 06.Celery
  • 10.微服务
  • 01.Java基础
  • 02.面向对象
  • 03.Java进阶
  • 04.Web基础
  • 05.Spring框架
  • 100.微服务
  • Docker
  • K8S
  • 容器原理
  • Istio
  • 数据结构
  • 算法基础
  • 算法题分类
  • 前置知识
  • PyTorch
  • 01.Python
  • 02.GO
  • 03.Java
  • 04.业务问题
  • 05.关键技术
  • 06.项目常识
  • 10.计算机基础
  • Linux基础
  • Linux高级
  • Nginx
  • KeepAlive
  • ansible
  • zabbix
  • Shell
  • Linux内核
  • Docker

  • K8S

    • 01_Kubernetes概述

    • 02_二进制搭建K8s集群

    • 03_kubeadm部署K8s

    • 04_Kubectl命令行管理工具

      • 01.kubectl命令行管理工具
        • 1.1 kube-apiserver两个端口
        • 1.2 在node节点中配置apiserver配置文件
        • 1.3 kubeconfig配置文件
        • 2.1 使用k8s集群部署一个网站
        • 2.2 镜像分类
        • 3.1 安装kubectl命令行管理工具补全插件
        • 3.2 kubectl常用命令
    • 05_资源编排(YAML)

    • 06_Pod对象管理

    • 07_Pod对象调度

    • 08_常用负载控制器

    • 09_Service统一入口访问

    • 10_Ingress对外暴露应用

    • 11_项目中实际应用K8s

  • 容器原理

  • Istio

  • 容器
  • K8S
  • 04_Kubectl命令行管理工具
xiaonaiqiang
2021-02-12
目录

01.kubectl命令行管理工具

# 01.kubectl与kubeconfig关系

# 1.1 kube-apiserver两个端口

  • localhost:8080 非安全端口,是kubectl默认先连接8080
  • 如果你配置kubeconfig(/root/.kube/config)就直接走这个配置连接的安全端口
  • masterip:6443 安全端口

# 1.2 在node节点中配置apiserver配置文件

'''1.在k8s-node1和k8s-node2中创建 /root/.kube 文件夹 '''
[root@k8s-node1 ~]# mkdir -p $HOME/.kube

'''2.在k8s-master复制admin.conf配置文件到node1和node2中 '''
[root@k8s-master ~]# scp /etc/kubernetes/admin.conf   root@192.168.56.62:/root/.kube/config
[root@k8s-master ~]# scp /etc/kubernetes/admin.conf   root@192.168.56.63:/root/.kube/config

'''3.配置完后就可以在node节点中执行kubectl命令,通过apiserver接口查看k8s集群状态  '''
[root@k8s-node2 .kube]# kubectl get node
NAME        STATUS   ROLES    AGE     VERSION
k8s-master    Ready    master     5h58m   v1.19.0
k8s-node1     Ready    <none>    5h54m   v1.19.0
k8s-node2     Ready    <none>    5h54m   v1.19.0
1
2
3
4
5
6
7
8
9
10
11
12
13

# 1.3 kubeconfig配置文件

  • kubectl使用kubeconfig认证文件连接K8s集群, 使用kubectl config指令生成kubeconfig文件
  • 了解一下基本结构即可

# 02.牛刀小试-快速部署一个网站

# 2.1 使用k8s集群部署一个网站

  • 使用docker构建了一个镜像,并把这个镜像推送到了 docker-hub 公用的镜像仓库中
[root@k8s-master ~]# docker pull lizhenliang/java-demo       # 测试一下,镜像是否可以被拉取
'''1.使用Deployment控制器部署镜像'''
[root@k8s-master ~]# kubectl create deployment web --image=lizhenliang/java-demo 
[root@k8s-master ~]# kubectl get deploy,pods              # 查看镜像是否在部署
NAME                  READY   STATUS    RESTARTS   AGE
pod/nginx-6799fc88d8-8sz6l   1/1     Running   0        4h31m
pod/web-674477549d-snfqx    1/1     Running   0        2m26s
[root@k8s-master ~]# kubectl describe pod web-674477549d-snfqx    # 查看镜像部署详细过程

'''2.使用Service将Pod暴露出去'''
[root@k8s-master ~]# kubectl expose deployment web --port=80 --target-port=8080 --type=NodePort

'''3.访问应用  ''' 
[root@k8s-master ~]# kubectl get svc    # 端口随机生成,通过get svc获取
NAME        TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)      AGE
web         NodePort    10.96.215.154    <none>      80:32610/TCP   13s
http://NodeIP:Port   ==》  http://192.168.56.62:32610/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 2.2 镜像分类

  • 基础镜像,例如centos、ubuntu
  • 环境镜像,例如jdk、nginx
  • 项目镜像,例如kubernetesui/dashboard

# 03.kubectl管理工具命令概要

# 3.1 安装kubectl命令行管理工具补全插件

[root@k8s-master ~]# yum -y install  bash-completion
[root@k8s-master ~]# source <(kubectl completion bash) 
[root@k8s-master ~]# kubectl create deployment           # 使用下面命令测试是否可以使用tab键补全
1
2
3

# 3.2 kubectl常用命令

kubectl get pods --show-labels      # 查看标签
kubectl get pods -l app=nginx      # 根据标签查询资源
1
2
功能说明 命令
node
查看服务器节点 kubectl get nodes
查看服务器节点详情 kubectl get nodes -o wide
节点打标签 kubectl label nodes <节点名称> labelName=<标签名称>
查看节点标签 kubectl get node --show-labels
删除节点标签 kubectl label node <节点名称> labelName-
pod
查看pod节点 kubectl get pod
查看pod节点详情 kubectl get pod -o wide
查看所有名称空间下的pod kubectl get pod --all-namespaces
根据yaml文件创建pod kubectl apply -f <文件名称>
根据yaml文件删除pod kubectl delete -f <文件名称>
删除pod节点 kubectl delete pod <pod名称> -n <名称空间>
查看异常的pod节点 kubectl get pods -n <名称空间> | grep -v Running
查看异常pod节点的日志 kubectl describe pod <pod名称> -n <名称空间>
svc
查看服务 kubectl get svc
查看服务详情 kubectl get svc -o wide
查看所有名称空间下的服务 kubectl get svc --all-namespaces
上次更新: 2024/3/13 15:35:10
01.使用kubeadm快速部署一个k8s集群
01.资源编排(YAML)

← 01.使用kubeadm快速部署一个k8s集群 01.资源编排(YAML)→

最近更新
01
04.数组双指针排序_子数组
03-25
02
08.动态规划
03-25
03
06.回溯算法
03-25
更多文章>
Theme by Vdoing | Copyright © 2019-2025 逍遥子 技术博客 京ICP备2021005373号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式