ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

kubernetes常用命令

2021-11-05 10:00:06  阅读:169  来源: 互联网

标签:kubectl kubernetes get -- 常用命令 nginx deployment yml


kubernetes常用命令

常用命令

# 查看k8s集群节点简单信息
$ kubectl get nodes
# 查询k8s集群节点详细信息
$ kubectl get nodes -o wide
# 查看k8s集群更详细的信息
$ kubectl describe nodes

# 查询k8s集群所有namespace
$ kubectl get ns
$ kubectl get namespace
$ kubectl describe namespace
# 创建namespace,名称为dev
$ kubectl create namespace -name dev
# 删除namespace (如果namespace下面有pods,需要先删除namespace下pods)
$ kubectl delete namespace dev

# 以下命令不带-n参数指定namespace,默认都在default这个namespace下执行
# 创建一个nginx服务,副本数量3
$ kubectl create deployment nginx-app --image=nginx --replicas=3
# 查看此deployment状态,READY 3/3 标识3个副本均启动完成
$ kubectl get deploy nginx-app
# 进入deployment的任一pod终端,使用curl访问
$ kubectl get pods
$ kubectl exec -it nginx-app-d6ff45774-8wb5t -- /bin/sh
# 在pod中执行非交互式命令
$ kubectl exec nginx-app-d6ff45774-xm6bm -- cat /etc/hostname
# 查看是否返回nginx首页
	$ curl localhost
	$ exit
# 创建service,暴露deployment的服务供外部访问,随机生成NodePort端口,--target-port=8000容器端口
$ kubectl expose deployment nginx-app --port=80 --type=NodePort --name=nginx-http
$ 
# 查看创建的service端口,使用浏览器访问nodeIp:此端口可以看到nginx页面,多次访问,请求随机落到3个副本上
$ kubectl get svc nginx-http
# 查看指定pod的滚动日志
$ kubectl logs -f nginx-app-d6ff45774-xm6bm

# 查看deployment,service,pods并删除
$ kubectl get svc
$ kubectl get deploy
$ kubectl get pods
$ kubectl delete svc nginx-http
$ kubectl delete deploy nginx-app
$ kubectl delete pods nginx


发布一个nginx服务

创建 nginx-pod.yml nginx-deployment.yml nginx-svc.yml 三个yml配置文件,三个配置文件内容也可以写在一个yml中

  • nginx-pod.yml

    apiVersion: v1
    kind: Pod
    metadata:
      name: nginx
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:alpine
        ports:
        - containerPort: 80
    
  • nginx-deployment.yml

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
    spec:
      selector:
        matchLabels:
          app: nginx
      replicas: 3
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:alpine
            ports:
            - containerPort: 80
    
  • nginx-svc.yml

    apiVersion: v1
    kind: Service
    metadata:
      name: nginx-service
    spec:
      selector:
        app: nginx
      ports:
      - protocol: TCP
        port: 80
        targetPort: 80
        nodePort: 30080
      type: NodePort
    

使用配置文件定义服务发布服务

# 发布pod到指定的namespace
$ kubectl apply -f nginx-pod.yml -n dev
$ kubectl apply -f nginx-deployment.yml -n dev
$ kubectl apply -f nginx-svc.yml -n dev
$ kubectl get deploy -n dev
$ kubectl get svc -n dev
# 本机浏览器访问http://nodeIp:30080,能看到nginx欢迎页就代表服务启动没有问题
# 查看副本数量
$ kubectl get rs
# 手动扩缩容
$ kubectl scale deploy nginx-deployment --replicas=4 -n dev
# 自动扩缩容,cpu使用率达到80%,最小副本数量10,最大扩容数量15
$ kubectl autoscale deploy nginx-deployment --min=10 --max=15 --cpu-percent=80
# 查看自动扩缩容配置
$ kubectl get hpa
# 删除自动扩缩容配置
$ kubectl delete hpa nginx-deployment


# 删除deployment和service
$ kubectl delete -f nginx-deployment.yml -n dev
$ kubectl delete -f nginx-svc.yml -n dev

参考文档: http://docs.kubernetes.org.cn/683.html
如果不知道命令用法可以加参数 --help查看帮助文档

标签:kubectl,kubernetes,get,--,常用命令,nginx,deployment,yml
来源: https://www.cnblogs.com/tangwan/p/k8s_command.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有