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

k8s-kubernetes常用命令,服务部署,可视化控制台安装及token的生成

上一篇文章介绍了怎么安装kubernetes,现在我们来学习下kubernetes的常用命令

我们直接通过部署可视化控制台kubernetes-dashboard来顺便学习下kubernetes的常用命令及服务的部署

kubernetes dashboard部署

执行下面的命令下载及安装 kubernetes dashboard

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml

默认安装完成以后 kubernetes dashboard 服务使用的是 clusterIP 只能在 k8s 的内网访问。

配置服务让外界可以访问

要解决这个问题我们可以创建一个 nodeport 服务对外直接暴露 node IP 和端口,让外界能够直接访问。
输入以下命令完成 nodeport 的创建:

kubectl expose deployment kubernetes-dashboard --type=NodePort --name=kubernetes-dashboard-nodeport -n kubernetes-dashboard

使用下面的命令可以检查 nodeport 服务的状态

kubectl get service kubernetes-dashboard-nodeport -n kubernetes-dashboard

现在在浏览器中输入 https://ip:port 就可以看到登录界面了。这里的 port 就是系统给我们分配的暴露 kubernetes dashboard 的端口。在上面的例子中是 32398

创建用户及角色

root@ictficial:/opt/k8s# vim dashboard-adminuser.yaml apiVersion: v1
kind: ServiceAccount
metadata:name: admin-usernamespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: admin-user
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: cluster-admin
subjects:- kind: ServiceAccountname: admin-usernamespace: kubernetes-dashboard

执行:

kubectl apply -f  dashboard-adminuser.yaml

生成 token

kubectl -n kubernetes-dashboard create token admin-user --duration=720h

保存好 token,以后我们需要使用 token 登录 kubernetes dashboard.
完成以上步骤后我们就可以通过 dashboard 访问和控制我们的 k8s 系统了。

常用命令

kubectl get node    #查看集群节点状态
kubectl get ns     #查看命名空间
kubectl get pods -n kube-system   #查看pod状态 -n 指定命名空间
kubectl logs -f -n kubernetes-dashboard kubernetes-dashboard-9f9799597-9w7ml
kubectl describe pods name  | grep Failed #可以查看到具体信息
kubectl describe pod kubernetes-dashboard-6c7ccbcf87-bmrrg -n kubernetes-dashboard
kubectl delete pod --field-selector=status.phase=Failed --all-namespaceskubectl create deployment gateway --image=lexang/dtb-gateway:tagname -o yaml --dry-run=client > gateway-deployment.yaml
#这个命令用于生成一个 Kubernetes Deployment 的 YAML 文件,该文件定义了一个名为 gateway 的 Deployment。这个 Deployment 使用了指定的 Docker 镜像 lexang/dtb-gateway:tagname 文件可能看起来像这样:
apiVersion: apps/v1
kind: Deployment
metadata:name: gateway
spec:replicas: 1selector:matchLabels:app: gatewaytemplate:metadata:labels:app: gatewayspec:containers:- name: gatewayimage: lexang/dtb-gateway:tagnameports:- containerPort: 80kubectl apply -f gateway-deployment.yamlkubectl expose deployment gateway --port=80 --target-port=48080 --dry-run=client -o yaml --type=NodePort --name=gateway-nodeport > gateway-service.yaml
# 这个命令的作用是生成一个定义 NodePort 类型服务的 YAML 文件。这个服务将名为 gateway 的 Deployment 暴露在端口 80 上,并将流量转发到后端容器的 48080 端口。生成的 YAML 文件内容会被保存到 gateway-service.yaml 文件中,而不会实际创建服务。生成的 gateway-service.yaml 文件可能看起来像这样:
apiVersion: v1
kind: Service
metadata:name: gateway-nodeport
spec:ports:- port: 80targetPort: 48080protocol: TCPselector:app: gatewaytype: NodePortkubectl apply -f gateway-service.yaml kubectl create namespace dev  #创建namespace 
kubectl run pod --image=nginx:latest -n devkubectl delete pod nginx -n dev #删除pod后会自动在重启pod 要删除pod  必须删除Pod控制器kubectl get deploy -n  dev #查询一下当前namespace下的Pod控制器
kubectl delete deploy nginx -n dev #删除此PodPod控制器kubectl get pods --field-selector=status.phase!=Running -o json | kubectl delete -f - #删除集群中所有状态不是 "Running" 的 Podkubectl scale deployment prometheus-adapter --replicas=1 -n monitoring # 调整名为 prometheus-adapter 的 Deployment 的副本数量(replicas)kubectl edit svc grafana -n monitoring    #修改grafana servicekubectl get configmap -n monitoring -o wide #获取monitoring 命名空间下的configmap kubectl get ns --show-labels    #--show-labels  查看labels kubectl version  # 查看kubectl 版本
journalctl -f -u kubelet   #查看kubelet日志
systemctl status kubelet.service #查看kubelet状态重启kubelet:
systemctl stop kubelet.service &&
systemctl daemon-reload &&
systemctl start kubelet.service

相关文章:

  • 【Android面试八股文】在Android中,出现ClassNotFound的有可能的原因是什么?
  • 富格林:细心发现虚假确保安全
  • 分层解耦
  • 【高端精品】最新手机版微信小程序(拼多多+京东)全自动操作项目
  • springcloud入门与实践
  • Django 中间件
  • 飞书API 2-1:如何通过 API 创建文件夹?
  • Endless OS简介
  • 【学习-华为HCIA数通网络工程师真题(持续更新)】(2024-6-16更)
  • 经典电源电路基础(变压-整流-滤波-稳压)
  • html是什么?http是什么?
  • vitepress搭建的博客系统cdn引入github discussions评论系统
  • Ubuntu 22.04 解决 firefox 中文界面乱码
  • CentOS手工升级curl记
  • 电子电气架构 --- 智能座舱功能应用
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • 【Linux系统编程】快速查找errno错误码信息
  • CSS相对定位
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • JavaScript 奇技淫巧
  • javascript 总结(常用工具类的封装)
  • JavaScript的使用你知道几种?(上)
  • JS笔记四:作用域、变量(函数)提升
  • Laravel 实践之路: 数据库迁移与数据填充
  • Logstash 参考指南(目录)
  • magento 货币换算
  • maya建模与骨骼动画快速实现人工鱼
  • PHP 小技巧
  • PHP那些事儿
  • Promise初体验
  • React-flux杂记
  • Sass 快速入门教程
  • Terraform入门 - 1. 安装Terraform
  • Travix是如何部署应用程序到Kubernetes上的
  • yii2权限控制rbac之rule详细讲解
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 仿天猫超市收藏抛物线动画工具库
  • 关于springcloud Gateway中的限流
  • 前嗅ForeSpider中数据浏览界面介绍
  • 深入 Nginx 之配置篇
  • 试着探索高并发下的系统架构面貌
  • 数据结构java版之冒泡排序及优化
  • 我的业余项目总结
  • 鱼骨图 - 如何绘制?
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • !!java web学习笔记(一到五)
  • (Python) SOAP Web Service (HTTP POST)
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (安卓)跳转应用市场APP详情页的方式
  • (附源码)springboot教学评价 毕业设计 641310
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (附源码)计算机毕业设计SSM在线影视购票系统