• 陈志成
    2022-12-14 来自广东
    kind 有很多设计理念,比如 1. 优雅降级 因为 kind 是专为测试 k8s 设计的,所以自身很顽强。支持所有的 k8s 官方版本,并且如其名字所示,docker 里搞出来的 k8s,集群依赖的所有的镜像都打包在了它的节点镜像里,厉害的是,如果这些镜像损坏了或者丢失了,节点镜像还能帮你重新拉下来,真是打不死的小强。 2. 不重复发明轮子 虽然现在已经有了很多功能类似的软件,比如大名鼎鼎的 kubeadm,但是 kind 并不是来搅局的,他很谦虚的抱着协作的态度,能复用就复用,站稳巨人的肩膀,专注解决痛点,合作共赢。 3. 最小化假设 kind 表示只要求安装 docker 即可,剩下的就交给我了。避免做出任何不必要的假设,minikube 表示,你礼貌吗? 4. 封闭原则,无状态原则 力求操作幂等、避免依赖外部服务,本身不存储或管理状态。好家伙,低内聚,高耦合,本身还没有副作用,不愧是 kind,确实很友好。 5. 避免伤害用户,遵循 k8s API 约定 啥?还有这原则。来看看都啥内容,避免配置和命令行接口的不兼容性修改,严格遵守 k8s 的弃用政策,面向外部的特性考虑扩展性以及长期支持性,使用 k8s 的配置风格,减少参数个数...一上来就海誓山盟还真是不习惯。 另外还有自动化和支持 CRI,感兴趣的可以了解了解 https://kind.sigs.k8s.io/docs/design/principles/
    展开

    作者回复: 幽默又不失知识点,优秀!

    
    13
  • Librant
    2022-12-20 来自广东
    每节课我都做了实验,有需要的可以参考,写的比较详细,github.com/librant/git-ops-learn,觉得有用帮忙star一下嘞

    作者回复: 赞!

    
    4
  • fireshort
    2022-12-13 来自广东
    Kind还没有看。 说一下思考题2: 将 flask-pod.yaml 更新为: apiVersion: v1 kind: Pod metadata: name: hello-world-flask spec: containers: - name: flask image: lyzhang1999/hello-world-flask:latest ports: - containerPort: 5000 - name: nginx image: nginx:1.23.2 ports: - containerPort: 80 执行 kubectl apply -f .\flask-pod.yaml 就可以。 端口转发:kubectl port-forward pod/hello-world-flask 80:80

    作者回复: ✅

    
    4
  • 加多
    2022-12-25 来自广东
    云原生 和k8s之间是什么关系那?我理解k8s是实现云原生的一个工具?

    作者回复: 是的,一般我们认为云原生技术的核心是 Docker 和 K8s。

    共 2 条评论
    1
  • Geek_1e70de
    2023-08-29 来自北京
    请问是不是开一台香港的云服务器就可以进行本课程的所有实验呢,ERROR: failed to create cluster: command "docker run --name kind-control-plane --hostname kind-control-plane --label io.x-k8s.kind.role=control-plane --privileged --security-opt seccomp=unconfined --security-opt apparmor=unconfined --tmpfs /tmp --tmpfs /run --volume /var --volume /lib/modules:/lib/modules:ro -e KIND_EXPERIMENTAL_CONTAINERD_SNAPSHOTTER --detach --tty --label io.x-k8s.kind.cluster=kind --net kind --restart=on-failure:1 --init=false --cgroupns=private --publish=0.0.0.0:80:80/TCP --publish=0.0.0.0:443:443/TCP --publish=127.0.0.1:43015:6443/TCP -e KUBECONFIG=/etc/kubernetes/admin.conf kindest/node:v1.27.3@sha256:3966ac761ae0136263ffdb6cfd4db23ef8a83cba8a463690e98317add2c9ba72" failed with error: exit status 125 docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: cgroup namespaces aren't enabled in the kernel: unknown. 这个错误是什么原因
    展开

    作者回复: 推荐使用云厂商的vm来做实验。

    共 4 条评论
    
  • Geek_1e70de
    2023-08-29 来自北京
    kind create的时候这个错误是什么原因 ✓ Ensuring node image (kindest/node:v1.27.3) 🖼 ✗ Preparing nodes 📦 Deleted nodes: ["kind-control-plane"] ERROR: failed to create cluster: command "docker run --name kind-control-plane --hostname kind-control-plane --label io.x-k8s.kind.role=control-plane --privileged --security-opt seccomp=unconfined --security-opt apparmor=unconfined --tmpfs /tmp --tmpfs /run --volume /var --volume /lib/modules:/lib/modules:ro -e KIND_EXPERIMENTAL_CONTAINERD_SNAPSHOTTER --detach --tty --label io.x-k8s.kind.cluster=kind --net kind --restart=on-failure:1 --init=false --cgroupns=private --publish=0.0.0.0:80:80/TCP --publish=0.0.0.0:443:443/TCP --publish=127.0.0.1:43015:6443/TCP -e KUBECONFIG=/etc/kubernetes/admin.conf kindest/node:v1.27.3@sha256:3966ac761ae0136263ffdb6cfd4db23ef8a83cba8a463690e98317add2c9ba72" failed with error: exit status 125 Command Output: WARNING: Your kernel does not support cgroup namespaces. Cgroup namespace setting discarded. 47a75af79038f24098f20854447af6a83bc5a0037aea8dc6e2d7cb0706d57493 docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: cgroup namespaces aren't enabled in the kernel: unknown.
    展开

    作者回复: 看着是机器的问题,可以开通一个云厂商的竞价型vm做实验。

    
    
  • Pin
    2023-08-14 来自上海
    执行kubectl cluster-info --context kind-kind后报错 To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. The connection to the server 127.0.0.1:58723 was refused - did you specify the right host or port? 请问这个问题怎么解决?

    作者回复: 看起来是 Kind 没启动导致的,连不上集群。

    
    
  • Kevin
    2023-05-09 来自四川
    ## 安装K8S仪表盘,方便对K8S网络进行管理和检查 首先要科学上网,然后执行如下命令: ```powershell kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml ``` 执行如下命令创建一个连接到你的 K8S 集群的 Web 服务器(执行这个命令的窗口不能关): ```powershell kubectl proxy ``` 创建 dashboard-adminuser.yaml 文件,内容如下,用来创建用户: ```yaml apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kubernetes-dashboard --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: admin-user roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: admin-user namespace: kubernetes-dashboard ``` 然后在 Windows PowerShell 中执行如下命令,创建用户: ```powershell kubectl apply -f dashboard-adminuser.yaml ``` 执行如下命令,获取用户的登录令牌,每次登录都需要使用下面的命令来获取登录令牌: ```powershell kubectl -n kubernetes-dashboard create token admin-user ``` 打开浏览器访问 [http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/](http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/) 用上一步骤获取到的用户令牌登录管理控制台。
    展开

    作者回复: 👍🏻

    
    
  • 渣渣辉
    2023-04-07 来自日本
    第一题 Kubernetes in Docker(Kind)是一个用于在 Docker 容器中运行 Kubernetes 集群的工具。它的设计理念是简化本地 Kubernetes 集群的部署和测试过程,特别是在持续集成(CI)环境中。使用 Kind,用户可以轻松地在本地机器或 CI 环境中创建和管理 Kubernetes 集群。 Kind 的主要优势在于它的便捷性和速度。由于它在 Docker 容器中运行 Kubernetes 集群,因此无需在物理机器或虚拟机上配置和管理复杂的 Kubernetes 环境。这使得 Kind 成为开发和测试 Kubernetes 应用程序的理想工具。 Kind 的工作原理是利用 Docker 提供的节点镜像,这些镜像包含了运行 Kubernetes 所需的所有组件。创建集群时,Kind 会启动一个或多个 Docker 容器,每个容器代表一个 Kubernetes 节点。这些节点通过 Docker 网络进行通信,并由 Kind 自动配置。这使得 Kubernetes 集群的创建和管理变得非常简单。 总之,Kubernetes in Docker(Kind)是一个简化本地 Kubernetes 集群部署和测试的工具,它在 Docker 容器中运行 Kubernetes 集群,使得开发和测试过程更加高效和便捷。 第二题 apiVersion: v1 kind: Pod metadata: name: hello-world-flask spec: containers: - name: flask image: lyzhang1999/hello-world-flask:latest ports: - containerPort: 5000 # 添加nginx - name: nginx image: nginx:latest ports: - containerPort: 80
    展开

    作者回复: 👍🏻非常细致的回答!

    
    
  • tee
    2023-02-28 来自湖南
    kind 拉起集群之后 apiserver提示 tls链接被对端断开了。

    作者回复: 另外检查一下本地是否有全局代理。

    
    