前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >『高级篇』docker之kubernetes基础集群命令小实战(35)

『高级篇』docker之kubernetes基础集群命令小实战(35)

作者头像
IT架构圈
发布2018-12-13 15:17:44
5850
发布2018-12-13 15:17:44
举报
文章被收录于专栏:IT架构圈IT架构圈

下面我们就来试试看怎么去操作,控制它。我们从最简单的命令开始,尝试一下kubernetes官方的入门教学:playground的内容。了解如何创建pod,deployments,以及查看他们的信息,深入理解他们的关系。源码:https://github.com/limingios/msA-docker k8s分支和https://github.com/limingios/kubernetes-starter 基础集群的搭建查看32节到34节

kubernetes接触命令
  • kubectl version

查看版本

  • kubectl get nodes

查看nodes

  • kubectl get pods

查看pods

  • 拉取官方的镜像

内存有点低比较慢

代码语言:javascript
复制
kubectl run kubernetes-bootcamp --image=jocatalin/kubernetes-bootcamp:v1 --port=8080
  • 查看deploy的详细信息
代码语言:javascript
复制
kubectl describe  deploy kubernetes-bootcamp
  • 查看pods的详细信息
代码语言:javascript
复制
kubectl describe  pods kubernetes-bootcamp-6b7849c495-xmmvh
  • 如何访问刚才那个8080端口因为它在103那台机器上,可以通过apiserver的方式

启动2个窗口,一个窗口启动代理命令,

代码语言:javascript
复制
kubectl proxy

然后操作另一个窗口

代码语言:javascript
复制
curl http://localhost:8001/api/v1/proxy/namespaces/default/pods/kubernetes-bootcamp-6b7849c495-xmmvh/
  • 扩缩容

k8s会均匀的使用机器,不会存在一台机器用的很多,一台机器用的很少的情况。

代码语言:javascript
复制
#如果需要从2 变成1 直接还用这个命令
kubectl scale deploy kubernetes-bootcamp --replicas=2
#可以看到在102运行了一个实例,在103在运行了一个实例
kubectl get pods -o wide
  • 升级镜像

目前状态

代码语言:javascript
复制
kubectl describe deploy kubernetes-bootcamp

升级镜像

代码语言:javascript
复制
#原来是v1升级为v2
kubectl  set image deploy kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2
kubectl describe deploy kubernetes-bootcamp

deploy的状态

代码语言:javascript
复制
kubectl rollout status deploy kubernetes-bootcamp

回滚镜像

代码语言:javascript
复制
kubectl rollout undo deploy kubernetes-bootcamp
#又变回v1了
kubectl describe deploy kubernetes-bootcamp

删除deploy

代码语言:javascript
复制
kubectl delete deploy kubernetes-bootcamp
配置文件

上边用了比较多的命令了,老铁消化吸收一下,当然一直使用命令管理集群真的很不方便,当拥有大量的应用的时候很难胜任了,k8s也提供了配置文件的方式来管理。跟swarm的有点类似吧。设计和功能上有点区别。

  • yaml文件创建pod
代码语言:javascript
复制
mkdir services
cd services
vi nginx-pod.yaml

nginx-pod.yaml 文件

代码语言:javascript
复制
apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers: 
    - name: nginx
      image: nginx:1.7.9
      ports: 
        - containerPort: 80

命令生成pod

代码语言:javascript
复制
kubectl create -f nginx-pod.yaml
#文件写明的创建pod,就不可能创建deploy
kubectl get deploy
kubectl get pods -o wide

启动代理尝试访问nginx 老套路,一个窗口启动,一个窗口curl

代码语言:javascript
复制
#ip101启动代理
kubectl proxy
#ip101另一个窗口访问
curl http://localhost:8001/api/v1/proxy/namespaces/default/pods/nginx/
  • yaml文件创建deployment
代码语言:javascript
复制
vi nginx-Deployment.yaml

nginx-Deployment.yaml 文件

代码语言:javascript
复制
apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 2
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
          - containerPort: 80

命令生成deployment

代码语言:javascript
复制
kubectl create -f nginx-Deployment.yaml
kubectl get deploy
kubectl get pods -o wide
kubectl get pods -l app=nginx
kubectl get pods -l app=nginx -o wide

PS:常用的命令就说到这里吧,下次继续说说service和dns。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-11-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程坑太多 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • kubernetes接触命令
  • 配置文件
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档