Kubernetes

k8s由多个cluster组成,每个cluster长这样。
components

Kubernete cluster由control plane和node组成。

  • control plane起调度的作用
  • node主要干活

control plane有以下服务

  • API server -- 接受外部请求,如kubectl发送的请求。
  • Backing store -- a high-availability, distributed, and reliable key-value store called etcd,保持cluster的当前和期望状态等
  • Scheduler -- 对node分配workload,监控新生成的container,再指定到node.
  • Controller manager -- 启动及监视controller,而controller用于监视node/container/endpoing.
  • Cloud controller manager -- 上云以后,使用云技术的controller manager。

node有以下服务

  • Kubelet -- 接收API server发来的请求,监控本node的container干活。
  • Kube-proxy -- 负责本node的网络,如提供ip地址,实现routing/load balancing by iptables/ipvs。
  • Container runtime -- 通过Container Runtime Interface来管理container。

有一个pod的概念,一个pod可以容纳一组container,比如website+mongodb这样两个container。
components

pod以yaml文件的方式(pod template)定义,然后k8s去下载/生成container。
一个node可以有多个pod。

在ubuntu上练习k8s

  • 安装MicroK8s(只支持一个cluster)。
    • sudo snap install microk8s --classic
  • 安装服务
    • sudo microk8s.status --wait-ready -- 默认一个服务都没启动
    • sudo microk8s.enable dns dashboard registry -- 启动3个服务
  • 给microk8s.kubectl加个别名kubectl,方便以后使用
    • sudo snap alias microk8s.kubectl kubectl
  • 看一下有哪些node和服务
    • sudo kubectl get nodes
    • sudo kubectl get services -o wide
    • sudo kubectl get services -o wide --all-namespaces
  • 安装nginx
    • sudo kubectl create deployment nginx --image=nginx -- 也可以通过文件的形式部署
    • sudo kubectl get deployments -- 显示已部署情况
    • sudo kubectl get pods -o wide -- 查看运行的pod, 可以运行wget 10.1.83.10测试
      NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
      nginx-86c57db685-dj6lz 1/1 Running 0 4m17s 10.1.83.10 microk8s-vm
  • 扩容到3个pod
    • sudo kubectl scale --replicas=3 deployments/nginx
      NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
      nginx-86c57db685-dj6lz 1/1 Running 0 7m57s 10.1.83.10 microk8s-vm
      nginx-86c57db685-lzrwp 1/1 Running 0 9s 10.1.83.12 microk8s-vm
      nginx-86c57db685-m7vdd 1/1 Running 0 9s 10.1.83.11 microk8s-vm
  • 卸载
    • sudo microk8s.disable dashboard dns registry
    • sudo snap remove microk8s
--------------------------- 知道的更多,不知道的也更多 ---------------------------
原文地址:https://www.cnblogs.com/mryux/p/15255489.html