美文网首页
Kubernetes集群初体验记录

Kubernetes集群初体验记录

作者: 福霜 | 来源:发表于2018-09-26 15:56 被阅读0次
    查看Linux内核版本命令
    • cat /proc/version
    • uname -a
    • cat /proc/cpuinfo #查看CPU信息
    • env #查看系统环境变量
    查看Linux系统版本的命令
    • lsb_release -a,即可列出所有版本信息,这个命令适用于所有的Linux发行版,包括RedHat、SUSE、Debian…等发行版。
    • cat /etc/redhat-release,这种方法只适合Redhat系的Linux
    • cat /etc/issue,此命令也适用于所有的Linux发行版。
      安装kubectl官方说明
      kubernetes结构.png

    1.Service部署

    获取当前集群列表
    • kubectl get nodes
    编辑Service的yaml文件
    • vi hello-service.yaml
    apiVersion: v1   #当前yaml使用的API版本
    kind: Service    #声明对象类型为Service,这是一个service的配置文件
    metadata:          #定义源数据
      name: hello-servive   #定义service的name为hello-service
    spec:          #servcie的规格说明
      type: NodePort               #声明service的类型,这里是NodePort即在每一个节点上暴露一个TCP port,将服务暴露在k8s集群之外,让集群外部也可以访问该服务
      selector:    #通过label匹配后端pod的选项
        app: hello-k8s-demo
      ports:
      -  protocol: TCP    #协议类型
        port: 80    #虚拟的service端口
        targetPort: 8080  #后端pod中容器监听的端口,到达service的流量会被负载均衡到后端某个容器的targetPort上
        nodePort: 30008  #每台节点监听的端口
    
    创建服务
    • kubectl create -f hello-service.yaml --record
    查看服务的创建结果
    • kubectl get svn|grep hello-service
    查看sevice的详细信息
    • kubectl describe svn/hello-service
    访问service服务
    • curl {IP}:30008/hello #若出现Connection refused则表示该服务还没有被发现,k8s会将这个服务注册到内部dns
    查看service的访问地址

    创建k8s内部容器busybox

    • kubectl run -i --tty busybox --image=busybox --restart=Never
      进入容器后查看hello-service的dns地址
    • nslookup hello-service #可以看到k8s自动为hello-service安装了容器入口

    2.Deployment部署(创建Pod)

    创建hello-service 的后端pod(一般不单独创建pod,而是通过控制器来部署pod,这里通过deployment控制器部署pod)
    • vi hello-deployment.yaml
    apiVersion: apps/v1betal   #yaml使用的API版本,1.6.0以前的版本使用extensions/v1beta1
    kind: Deploymnet    #对象类型
    metadata:    #对象信息
      name: hello-deployment
      labels:
          app: hello-k8s-demo
    spec:     #规格信息
      replicas: 2   #部署后有两个pod在运行
      template:     #pod的模板配置,每个pod都将基于该模板去创建
        metadata:    #pod的源信息
          labels:     #service通过这个label来匹配pod
            app: hello-k8s-demo
        spec:
          containers:
          -  name: hello-k8s
            image: bigwhite/hello-kubernetes-demo:v0.1
            imagePullPolicy: Always
            ports:
            -  containerPort: 8080
    
    创建deployment
    • kubectl create -f hello-deployment.yaml --record=true
    查看deployment列表
    • kubectl get deployments

    3.请求的自动负载均衡

    k8s会自动将服务请求负载均衡到后端pod上

    查看pod信息
    • kubectl get pods|grep hello #查看名字中带有hello的pod信息
    监听pod的运行日志

    -kubectl logs -f hello-deployment-85539-shtcg #这是监听hello-deployment-85539-shtcg这个pod的运行日志

    4.服务伸缩、版本升级与回退

    pod数量扩展
    • vi hello-deployment.yaml #进入修改文件中的pod数量
    • kubectl apply -f hello-deployment.yml #让修改生效

    修改容器镜像的版本,进入hello-deployment.yaml,修改spec.template.spec.containers.image的镜像版本,然后让修改生效

    查看升级过程
    • kubectl rollout status deployment/hello-deployment #查看hello-deployment的升级过程
    服务快速回滚到上一版本
    • kubectl rollout undo deployments/hello-deployment #回退hello-deployment到之前的版本
    k8s拉取私有仓库的镜像

    相关参考:

    相关文章

      网友评论

          本文标题:Kubernetes集群初体验记录

          本文链接:https://www.haomeiwen.com/subject/qlnfwftx.html