容器編排技術之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