k8s: 11 items found.

k8s 集群调度

关于调度

k8s内pod由scheduler调度,scheduler的任务是把pod分配到合适的node节点上。scheduler调度时会考虑到node节点的资源使用情况、port使用情况、volume使用情况等等...在此基础之上,我们也可以控制pod的调度。

More ~

k8s 资源清单与pod

k8s中的资源

k8s中所有的内容都抽象成了资源,资源实例化后,称为对象。所有对象可以通过 get delete edit apply进行增删改查。通常分类以下三类资源

  • namespace级别资源:pod、rs、rc、deployment、service、ingress、volume、configmap...
  • 集群级别资源:namespace、node...
  • 元数据型资源:HPA...

namespace为资源提供了集群内的逻辑隔离,需要注意的是,这只是逻辑隔离,不同namespace的pod有可能运行在同一个节点node上

More ~

K8S实战(二)| 发布容器到 K8S 集群中

容器来源

使用 nginx 的官方容器镜像。

发布容器的两种方式

镜像有了,我们如何将其提交给 K8S 运行呢,有两种方式:

  1. 命令行方式(不推荐)。
  2. 配置文件方式(推荐)。

这里使用官方推荐的第二种方式,即通过将容器的各种信息写入配置文件提交给 K8S。

More ~

了解一下k3s

一句话介绍:

k3s - 轻量级的 Kubernetes,易于安装,占用内存少,安装包小于100MB。

它非常适合于以下场景:

  • Edge
  • IoT
  • CI
  • Development
  • ARM
  • Embedding k8s
  • Situations where a PhD in k8s clusterology is infeasible
More ~

windows环境使用CentOS7虚拟机安装minikube

in10环境,安装的VMware Workstation Pro,创建了一台Centos7.x的虚拟机。并启用虚拟化。
截图20191015175316721.jpg

先安装kubectl

// v1.16.0版本可以从这里查 https://storage.googleapis.com/kubernetes-release/release/stable.txt
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.16.0/bin/linux/amd64/kubectl
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
kubectl version

上述如果在墙内,需要http代理可以,先将代理设为环境变量 export http_proxy=http://ip:port

也可以从github上下载
https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG.md#client-binaries-1
找到Current release如 https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.16.md
再找到Client Binaries如v1.16.0下的 https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.16.md#client-binaries
再找到合适的tar包如 https://dl.k8s.io/v1.16.0/kubernetes-client-linux-amd64.tar.gz

wget https://dl.k8s.io/v1.16.0/kubernetes-client-linux-amd64.tar.gz
tar -zxvf kubernetes-client-linux-amd64.tar.gz
cd kubernetes/client/bin
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
kubectl version
More ~

failed to pull image k8s.gcr.io/kube-apiserver:v1.16.0...

虚拟机内使用minikube start --vm-driver=none装minikube时,报的这个

[preflight] You can also perform this action in beforehand using 'kubeadm config images pull'
error execution phase preflight: [preflight] Some fatal errors occurred:
        [ERROR ImagePull]: failed to pull image k8s.gcr.io/kube-apiserver:v1.16.0: output: Trying to pull repository k8s.gcr.io/kube-apiserver ...
Get https://k8s.gcr.io/v1/_ping: dial tcp 64.233.189.82:443: connect: connection refused
, error: exit status 1

实际上就是这个域名k8s.gcr.io不通。
可以执行minikube start --vm-driver=none --image-mirror-country=cn; 来指定国内镜像源。

More ~

容器化之路 - 面对一堆yml配置我很茫然

对于容器的配置文件, docker-compose的还好理解,但是一到k8s,就有很多对象, pods, nodes, services, deployment... 每个基本上都有个yml的定义,其中的参数一看一脸茫然。

还好找到这个:kubectl explain xxx 可以看它的定义

kubectl explain service --recursive 可以查看service定义的所有定段。
kubectl explain svc.metadata.uid 可以查看某个字段的定义

当然,k8s官方也有一些examples: https://github.com/kubernetes/examples

More ~

macos 搭建 Kubernetes (k8s)

先安装macos桌面版的docker

  1. brew install kubernetes-cli --verbose

  2. 安装virtualbox

  3. brew cask install minikube
    如果有墙内,可以安装阿里云的版本
    curl -Lo minikube http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.1.1/minikube-darwin-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

  4. 启动minikube
    minikube start --registry-mirror=https://registry.docker-cn.com

  5. (可选)dashboard
    minikube dashboard

More ~