kubernetes

Docker for Windows两个配置:

Insecure registries:

registry.mirrors.aliyuncs.com

Registry mirrors:

https://kuk5vfp1.mirror.aliyuncs.com

集群客户端命令行工具:

kubectl,它使用Kubernetes API和集群交互。

kubectl version

查看集群信息:kubectl cluster-info

查看节点信息:kubectl get nodes

一个deployment负责创建和update你的应用。

查看某个命令的帮助信息:

kubectl get nodes --help

部署应用:

kubectl run kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1 --port=8080

查看部署:

kubectl get deployments

在container中运行命令:

kubectl exec $POD_NAME env     // 列举该pod上唯一的container的env环境变量

在该container上启动一个bash

kubectl exec -ti $POD_NAME bash

k8s实质上是一个容器管理平台,k8s的对象主要用来代表,表示集群的状态的。表达集群期望状态。

一个Kubernetes Deployment就是一个k8s对象,感觉像是两个普通名词,但是它代表一个集群上运行的应用程序。

k8s资源:pods,services,replication controllers,等等都是资源

强制命令和对象配置, Imperative command & object configuration

Nodes之前叫做minion

每个 pod 都是为了运行给定应用程序的单个实例。如果要水平扩展应用程序 (例如, 运行多个实例), 则应使用多个 pod, 每个实例一个。在 kubernetes 中, 这通常称为复制。

当 pod 中的容器与 pod 之外的实体进行通信时, 它们必须协调它们使用共享网络资源 (如端口) 的方式。

pod 中的所有容器都可以访问共享卷, 从而允许这些容器共享数据。卷还允许在需要重新启动其中一个容器的情况下存活 pod 中的持久数据。

kubernetes 使用更高级别的抽象 (称为控制器) 来处理管理相对可使用的 pod 实例的工作。控制器可以为您创建和管理多个 pod, 处理复制和推出, 并在群集范围内提供自我修复功能

Pod内的容器共享 ip 地址和端口空间, 并可以通过localhost相互查找

对于Pod中的应用程序容器来说,主机名就是Pod的名称

但是, 部署(Deployment)是一个更高级别的概念, 它管理副本集, 并向 pods 提供声明性更新以及许多其他有用的功能。

因此, 我们建议使用部署而不是直接使用副本集, 除非您需要自定义更新业务流程或根本不需要更新。

pod 模板是包含在其他对象 (如复制控制器、作业和 DaemonSets) 中的Pod规范。控制器使用 pod 模板来制作实际的Pod。

与部署一样, 状态集(StatefulSet)管理基于相同容器规范的 pod。与部署不同, 状态集为其每个 pod 维护一个粘滞标识。这些Pod是从相同的规范创建的, 但不能互换: 每个Pod都有一个持久标识符, 它在任何重新安排中都保持该标识符。

service

请注意, 服务可以将传入端口映射到任何目标端口。默认情况下, 目标端口将设置为与端口字段相同的值。也许更有趣的是, 目标端口可以是一个字符串, 指的是后端 pod 中的端口名称。分配给该名称的实际端口号在每个后端 pod 中可能不同。

在此模式下, kube 代理监视 kubernetes 主机以添加和删除服务和端点对象。对于每个服务, 它都会安装 iptables 规则, 这些规则捕获到服务的群集 ip (虚拟) 和端口的流量, 并将该流量重定向到服务的后端集之一。对于每个 端点对象, 它安装选择后端 pod 的 iptables 规则。默认情况下, 后端的选择是随机的。

即使应用和库进行了适当的重新解析, 也很难管理每个客户端反复解析 dns 的负载。所以不用round-robin DNS而用virtual IPs.

例如, 如果在 kubernetes namespace 中有一个名为 "my-services" 的服务, 则会创建 "my-services. my-ns" 的 dns 记录。存在于 "my-ns" 命名空间中的Pod应该能够通过简单地对 "my-services" 进行名称查找来找到它。存在于其他命名空间中的Pod必须将名称限定为 "my-service. my-ns"。这些名称查找的结果是集群 ip。

对于此类服务, 不分配群集 ip, kube 代理不处理这些服务, 并且平台没有为它们执行负载平衡或代理。dns 的自动配置方式取决于服务是否定义了选择器

体验minikube:https://www.cnblogs.com/shanyou/p/8503839.html

在我本机powershell,界面输出如下:

docker for windows提供了创建cluster的简单方式,参照:

https://github.com/AliyunContainerService/k8s-for-docker-desktop?spm=a2c4e.11153940.blogcont672675.10.3058a458JwsERW

碰到过一个问题,curl return Empty reply from server,删掉home目录下.kube里面的config文件,再重启docker for windows就好了。

Windows 10, docker for windows, 安装istio,服务间路由,以下命令有问题:

helm install install/kubernetes/helm/istio --name istio --namespace istio-system

需要清空:

kubectl delete -f install/kubernetes/helm/istio/templates/crds.yaml -n istio-system

kubectl -n istio-system delete job --all

helm delete --purge istio

Node的地址包含主机名,外部IP,内部IP;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

novodexx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值