容器编排技术之k8s


k8s 集群架构图

 

 pod:比container更大的集装箱

  1.k8s最小工作单元  

  2.运行在一个node上

  3.pod中的容器共享网络和存储

 

k8s集群搭建:https://www.cnblogs.com/imstrive/p/11409008.html,搭建过程中极容易出错,耐心。。。

  注意点:

  注意修改hosts文件,定义hostname

安装pod网络插件时,https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml解析异常,解决办法:
  1)vi /etc/hosts, 添加 199.232.28.133  raw.githubusercontent.com
  2)把原文档改成https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

 master删除node节点   kubectl delete nodes  node名称

 

k8s部署pod

  使用kubectl apply +yml配置文件

  示例:部署单个pod

        

    

 

     

 

      查看所有pod:kubectl get pod

   查看pod具体信息: kubectl describe pod mynginx

   查看pod主要信息: kubectl get pod -o wide 

   在master节点操作pod:kubectl exec -it mynginx  /bin/bash

 

     部署deployment(pod集群)

  

 

 

           

         kubectl apply -f mynginx-deployment.yml\

 

         查看deployment: kubectl get deployment

  查看deployment详细信息: kubectl describe deployment nginx-deployment

      弹性扩缩容:

    1.kubectl edit deployment nginx-deployment

    2.修改replicas数值

 

 

 

 

 

 

     停止deployment: kubectl scale --replicas=0 deployment/nginx-deployment

    对node和pod添加标签,进行部署约束和调度约束:

      1.添加标签:

 

 

       2.查看标签:

 

 

     指定资源部署:

      1.修改yml文件,指定标签

        

 

 

 

对于k8s而言,pod是最小单元,是最底层的东西。更常见的是各种controller

controller:

  1.deployment->replicaSet->pod,最常见,多副本部署

  2.job,定时任务,跑完自动删除

  3.statefulSet 增删改查时,名称始终保持不变

  4.daemonSet 一个node上只有一个

  

 

 

 deployment滚动升级:修改配置文件,重新apply

  1.查看历史版本:kubectl rollout history deployment(apply的时候加上--record方便查看)

  2.回滚历史版本:kubectl rollout undo deployment --to-reversion=1

job示例->hello world

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 服务发现:

    1)vim service.yml

      

     2)kubectl apply -f service.yml

     3)kubectl get service:查看具体ip

      

 

 

     4)正常访问,看到nginx界面(只限于pod间访问,默认clusterIp模式无法提供外部访问)

      

 

 

     5)以pod之间服务发现的方式访问(服务名.namespace名:服务端口),显示nginx界面

      1.

      2.

 

 

     6)修改service.yml,指定service type,提供外部访问

      1.

      

 

 

       2.外网访问192.168.3.201:30000,显示nginx

        

 

 

访问策略控制

  法兰绒网络不支持策略控制,需要使用canal或者calico等,如果是使用的法兰绒网络,需要重新初始化k8s集群!

  1.vim policy.yml

    

 

   2.

 

   3.

 

 

   4.带有access=true标签的pod可以正常访问

 

  

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM