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

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

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

kubernetes dashboard部署

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

bash 复制代码
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml

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

配置服务让外界可以访问

要解决这个问题我们可以创建一个 nodeport 服务对外直接暴露 node IP 和端口,让外界能够直接访问。

输入以下命令完成 nodeport 的创建:

bash 复制代码
kubectl expose deployment kubernetes-dashboard --type=NodePort --name=kubernetes-dashboard-nodeport -n kubernetes-dashboard

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

bash 复制代码
kubectl get service kubernetes-dashboard-nodeport -n kubernetes-dashboard

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

创建用户及角色

bash 复制代码
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

执行:

bash 复制代码
kubectl apply -f  dashboard-adminuser.yaml

生成 token

bash 复制代码
kubectl -n kubernetes-dashboard create token admin-user --duration=720h

保存好 token,以后我们需要使用 token 登录 kubernetes dashboard.

完成以上步骤后我们就可以通过 dashboard 访问和控制我们的 k8s 系统了。

常用命令

bash 复制代码
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
相关推荐
moppol1 小时前
Serverless 架构入门与实战:AWS Lambda、Azure Functions、Cloudflare Workers 对比
云原生·serverless·aws
IvanCodes2 小时前
一、Docker:一场颠覆应用部署与运维的容器革命
docker·容器
栗子~~2 小时前
Milvus docker-compose 部署
docker·容器·milvus
没有名字的小羊4 小时前
2.安装Docker
运维·docker·容器
xiezhr4 小时前
50 个常用 Docker 命令
运维·docker·容器
退役小学生呀9 天前
三、kubectl使用详解
云原生·容器·kubernetes·k8s
被困者10 天前
Linux部署Sonic前后端(详细版)(腾讯云)
spring cloud·云原生·eureka
程序员小潘10 天前
Kubernetes多容器Pod实战
云原生·容器·kubernetes
进击的码码码码N10 天前
Docker 镜像加速
运维·docker·容器