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-user
  namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: admin-user
    namespace: 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-namespaces

kubectl 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: 1
  selector:
    matchLabels:
      app: gateway
  template:
    metadata:
      labels:
        app: gateway
    spec:
      containers:
      - name: gateway
        image: lexang/dtb-gateway:tagname
        ports:
        - containerPort: 80


kubectl apply -f gateway-deployment.yaml

kubectl 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: 80
    targetPort: 48080
    protocol: TCP
  selector:
    app: gateway
  type: NodePort

kubectl apply -f gateway-service.yaml 

kubectl create namespace dev  #创建namespace 
kubectl run pod --image=nginx:latest -n dev

kubectl 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" 的 Pod

kubectl scale deployment prometheus-adapter --replicas=1 -n monitoring # 调整名为 prometheus-adapter 的 Deployment 的副本数量(replicas)

kubectl edit svc grafana -n monitoring    #修改grafana service

kubectl 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

相关推荐

  1. 学习 KubernetesK8s)、命令

    2024-06-13 19:44:01       39 阅读
  2. RKE安装k8s部署rancher之证书通过cert-manager

    2024-06-13 19:44:01       55 阅读
  3. k8s集群命令

    2024-06-13 19:44:01       15 阅读

最近更新

  1. shell脚本实现mysql 数据库备份

    2024-06-13 19:44:01       0 阅读
  2. 数据结构第11节: B树

    2024-06-13 19:44:01       0 阅读
  3. Spring Boot与RSocket的集成

    2024-06-13 19:44:01       0 阅读
  4. 责任链模式

    2024-06-13 19:44:01       0 阅读
  5. docker run/build Dockerfile 修改及完善

    2024-06-13 19:44:01       1 阅读

热门阅读

  1. 国产数据库助力数字中国建设高质量发展

    2024-06-13 19:44:01       9 阅读
  2. 量产导入 | SCAN和ATPG

    2024-06-13 19:44:01       11 阅读
  3. 函数用于将字符串反转以及函数的作用

    2024-06-13 19:44:01       9 阅读
  4. Chrome DevTools开发者调试工具

    2024-06-13 19:44:01       9 阅读
  5. 从零制作一个ubuntu的docker镜像

    2024-06-13 19:44:01       11 阅读
  6. 在 Ubuntu 上取消登录密码和锁屏功能的简易指南

    2024-06-13 19:44:01       15 阅读
  7. MySQL(2)

    2024-06-13 19:44:01       8 阅读
  8. AForge.NET介绍

    2024-06-13 19:44:01       10 阅读
  9. tar cjf xx.tar.bz2 xx,命令参数的含义

    2024-06-13 19:44:01       8 阅读
  10. MySQL bin-log日志恢复数据

    2024-06-13 19:44:01       12 阅读
  11. LVS ipvsadm命令的使用(二)

    2024-06-13 19:44:01       10 阅读
  12. CVE-2020-1472域渗透 NetLogon 权限提升漏洞

    2024-06-13 19:44:01       12 阅读