Giter Site home page Giter Site logo

feiskyer / kubernetes-handbook Goto Github PK

View Code? Open in Web Editor NEW
5.2K 254.0 1.4K 67.23 MB

Kubernetes Handbook (Kubernetes指南) https://kubernetes.feisky.xyz

License: Other

Makefile 73.67% Go 23.36% Dockerfile 2.97%
kubernetes containers handbook books gitbook docker cloud-native service-mesh kubernetes-handbook microservice

kubernetes-handbook's Introduction

序言

star this repo fork this repo contributions welcome

Kubernetes 是谷歌开源的容器集群管理系统,是 Google 多年大规模容器管理技术 Borg 的开源版本,也是 CNCF 最重要的项目之一,主要功能包括:

  • 基于容器的应用部署、维护和滚动升级
  • 负载均衡和服务发现
  • 跨机器和跨地区的集群调度
  • 自动伸缩
  • 无状态服务和有状态服务
  • 广泛的 Volume 支持
  • 插件机制保证扩展性

Kubernetes 发展非常迅速,已经成为容器编排领域的领导者。Kubernetes 的中文资料也非常丰富,但系统化和紧跟社区更新的则就比较少见了。《Kubernetes 指南》开源电子书旨在整理平时在开发和使用 Kubernetes 时的参考指南和实践总结,形成一个系统化的参考指南以方便查阅。欢迎大家关注和添加完善内容。

在线阅读

项目源码

项目源码存放于 Github 上,https://github.com/feiskyer/kubernetes-handbook

本书版本更新记录

如无特殊说明,本指南所有文档仅适用于 Kubernetes v1.6 及以上版本。详细更新记录见 CHANGELOG

微信公众号

扫码关注微信公众号,回复关键字即可在微信中查看相关章节。

贡献者

欢迎参与贡献和完善内容,贡献方法参考 CONTRIBUTING。感谢所有的贡献者,贡献者列表见 contributors

LICENSE

LICENSE

署名-非商业性使用-相同方式共享 4.0 (CC BY-NC-SA 4.0)

kubernetes-handbook's People

Contributors

akxc avatar asaiun avatar blackfoxsar avatar dangzhiqiang avatar davaddi avatar dddddai avatar dependabot[bot] avatar detailyang avatar ehlxr avatar fancyhe avatar feiskyer avatar haoruilee avatar imroc avatar jason-liew avatar jinsyin avatar jjmengze avatar jxlwqq avatar keepwow avatar kweisamx avatar lentil1016 avatar nianjiang avatar supereagle avatar wall-e avatar wangzhuzhen avatar willseeyou avatar xlgao-zju avatar yan234280533 avatar ydcool avatar zgfh avatar zhuweiyang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kubernetes-handbook's Issues

gluster 持久存储的问题

我现在用gluster 做 storageclass 动态pv, heketi 管理 gluster 的 volume。 但是这种方式并不能创建 glusterfs 分布式复制卷,glusterfs 生产一般不是用 分布式复制卷吗。 用heketi 不支持这种卷类型,是我搞错了?

部署工具:kargo

博主,不知道您使用kargo没,虽然用kargo有时在网络不稳定情况下会出篓子,不过个人感觉在规模量大的时候,kargo部署起来还是有利处的,之前听说 kargo 在做 etcd 高可用的话架构方案不是特别好,不知道博主怎么理解这部分的,如果有机会向博主交流学习下。感谢博主做的这部分分享,个人发现一些可能拼写失误导致的汉子打错,已经在gitbook中提了些commit了。

内容重复

(1) kubernetes-handbook/architecture/concepts.md 文档“Kubernetes的设计理念”中有分层架构的图和介绍
(2) kubernetes-handbook/architecture/index.md 文档"Kubernetes架构"中也有分层架构的图和介绍
这两部分完全重复,是不是可以删除掉一部分?

kubectl启动失败

请问我kubectl 启动失败是什么原因呢,是我docker 配置问题吗?还是说文件系统不支持?或则我监控配置有问题?

centos7.4
kubernetes1.8.4

Jan 02 16:02:35 qcloud-sh-record-0008 kubelet[33492]: I0102 16:02:35.062533   33492 server.go:718] Started kubelet v1.8.4
Jan 02 16:02:35 qcloud-sh-record-0008 kubelet[33492]: E0102 16:02:35.062552   33492 kubelet.go:1234] Image garbage collection failed once. Stats initialization may not have completed yet: failed to get imageFs info: unable to find data for container /
Jan 02 16:02:35 qcloud-sh-record-0008 kubelet[33492]: I0102 16:02:35.062569   33492 server.go:128] Starting to listen onxxxx:10250
Jan 02 16:02:35 qcloud-sh-record-0008 kubelet[33492]: I0102 16:02:35.062599   33492 server.go:148] Starting to listen read-only onxxxx:10255
Jan 02 16:02:35 qcloud-sh-record-0008 kubelet[33492]: I0102 16:02:35.062957   33492 kubelet_node_status.go:280] Setting node annotation to enable volume controller attach/detach
Jan 02 16:02:35 qcloud-sh-record-0008 kubelet[33492]: I0102 16:02:35.064667   33492 server.go:296] Adding debug handlers to kubelet server.
Jan 02 16:02:35 qcloud-sh-record-0008 kubelet[33492]: F0102 16:02:35.064724   33492 server.go:156] listen tcp 118.89.14.76:10255: bind: cannot assign requested address

页面乱码

Kubernetes部署指南在CentOS上部署kubernetes1.6集群 中好几个子目录访问时都是出现了乱码,不确定是不是我个人浏览器原因;另外,这几个子目录都是 md 文件,不是 html 页面。

再次请教Traefik ingress问题

@feiskyer 你好,再次来请教你关于Traefik ingress的问题。
我目前K8S的环境是:
master主机:10.65.93.34
node1 主机:10.65.93.56

ingress-rbac.yaml、traefik-deployment.yaml、traefik_ui.yaml脚本已经执行。Traefik ingress这个pod运行在10.65.93.56这个主机,pod的ip是172.17.70.66
svc运行情况如下:
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kube-system traefik-ingress-service NodePort 10.68.89.185 80:7078/TCP,8080:6857/TCP 8h
kube-system traefik-web-ui ClusterIP 10.68.119.238 80/TCP 8h

我当前主要目的是想在k8s集群外(10.65.93.34、10.65.93.56之外的主机)的主机10.65.93.88访问traefik ui。在浏览器上访问http://10.65.93.34:6857是能够正常访问出现界面的。但是用ingress的方式不行。不论我在10.65.93.88的hosts配置:10.65.93.56 traefik-ui.nginx.io还是配成10.65.93.34 traefik-ui.nginx.io,在浏览器上访问http://traefik-ui.nginx.io都不行。不知道我的配置是不是有问题?还是我对ingress的理解还是不到位?

附上我的traefik_ui.yaml

apiVersion: v1
kind: Service
metadata:
name: traefik-web-ui
namespace: kube-system
spec:
selector:
k8s-app: traefik-ingress-lb
ports:

  • port: 80
    targetPort: 8080

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: traefik-web-ui
namespace: kube-system
annotations:
kubernetes.io/ingress.class: traefik
spec:
rules:

  • host: traefik-ui.nginx.io
    http:
    paths:
    • backend:
      serviceName: traefik-web-ui
      servicePort: 80

关于Metrics

你好,关于Metrics server,我有以下几个疑问,想请教一下:

  1. 如果我只是想收集CPU和Memory的信息,并基于此做自动扩容,是否可以不开启Aggregation Layer。因为目前我基于metrics server创建了hpa, 但是收集不到resource信息(如下),不知道是否是没有开启Aggregation Layer的原因?
# kubectl get hpa
NAME        REFERENCE          TARGETS                          MINPODS   MAXPODS   REPLICAS   AGE
hpa-httpd   Deployment/httpd   <unknown>/200Mi, <unknown>/50%   1         10        1          1m
  1. 如果是需要开启,我看到您的教程以及官方的指南是需要添加几个参数的,这几个参数我在/etc/kubernetes/manifests/kube-apiserver.yaml中找到了。但是它们已经存在了,不知道是修改它们的值,还是直接添加?应该是修改值吧。但是这几个值我查了下是相关证书的路径,就是说我们还需要先生成证书,然后才能修改值,如果方便您能写下生成证书的方式吗?

我的kubernetes版本是:

Client Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.1", GitCommit:"b1b29978270dc22fecc592ac55d903350454310a", GitTreeState:"clean", BuildDate:"2018-07-17T18:53:20Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.2", GitCommit:"bb9ffb1654d4a729bb4cec18ff088eacc153c239", GitTreeState:"clean", BuildDate:"2018-08-07T23:08:19Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}

Kuryr guide

  • 创建 K8s project。
  • 修改 K8s project member 加入到 service project。
  • 在该 Project 中新增 Security Groups,参考 kuryr-kubernetes manually。
  • 在该 Project 中新增 pod_subnet 子网络。
  • 在该 Project 中新增 service_subnet 子网络。

Seems the step is very clear for new comers. @kairen Could you help to add a detailed guide for this steps?

service暴露的端口使用公网ip无法访问

做到部署node节点那一步,暂时master和node都在一台上,跟据教程创建了一个niginx的service试一下集群是否可用:

Pod状态:

[root@node-2 /]$kubectl get pods
NAME                    READY     STATUS    RESTARTS   AGE
nginx-ff994b94c-tv472   1/1       Running   0          5m
nginx-ff994b94c-z74hl   1/1       Running   0          5m

service状态:

NAME              TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
example-service   NodePort    10.30.92.37   <none>        80:30109/TCP   6m
kubernetes        ClusterIP   10.30.0.1     <none>        443/TCP        11m

-------------

[root@node-2 /]$kubectl describe svc example-service
Name:                     example-service
Namespace:                default
Labels:                   run=load-balancer-example
Annotations:              <none>
Selector:                 run=load-balancer-example
Type:                     NodePort
IP:                       10.30.92.37
Port:                     <unset>  80/TCP
TargetPort:               80/TCP
NodePort:                 <unset>  30109/TCP
Endpoints:                172.30.29.2:80,172.30.29.3:80
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>

使用curl 10.30.92.37可以得到nginx的响应,

[root@node-2 /]$curl 10.30.92.37
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

但是使用从公网访问curl 公网ip:30109则无响应,浏览器也没有报错,用curl开debug模式:

$ time curl 198.44.242.180:32708 -v
* Rebuilt URL to: 198.44.242.180:30109/
*   Trying 198.44.242.180...
* TCP_NODELAY set
* Connected to 198.44.242.180 (198.44.242.180) port 30109 (#0)
> GET / HTTP/1.1
> Host: 198.44.242.180:30109
> User-Agent: curl/7.54.0
> Accept: */*
>
* Empty reply from server
* Connection #0 to host 198.44.242.180 left intact
curl: (52) Empty reply from server
curl 198.44.242.180:30109 -v  0.01s user 0.01s system 0% cpu 2:02.37 total

检查了api-serverkube-proxy, kubelet都是正常运行的状态:

[root@node-2 /]$kubectl get componentstatuses
NAME                 STATUS    MESSAGE              ERROR
scheduler            Healthy   ok
controller-manager   Healthy   ok
etcd-0               Healthy   {"health": "true"}
etcd-1               Healthy   {"health": "true"}

volume拼写错误

文中有多处volume的拼写错误如下:

architecture/concepts.md:25:1. **所有API应该是声明式的**。正如前文所说,声明式的操作,相对于命令式操作,对于重复操作的效果是稳定的,这对于容易出现数据丢失或重复的分布式环境来说是很重要的。另外,声明式操作更容易被用户使用,可以使系统向用户隐藏实现的细节,隐藏实现的细节的同时,也就保留了系统未来持续优化的可能性。此外,声明式的API,同时隐含了所有的API对象都是名词性质的,例如Service、Volumn这些API都是名词,这些名词描述了用户所期望得到的一个目标分布式对象。 
architecture/concepts.md:97:### 存储卷(Volumn)
architecture/concepts.md:99:K8s集群中的存储卷跟Docker的存储卷有些类似,只不过Docker的存储卷作用范围为一个容器,而K8s的存储卷的生命周期和作用范围是一个Pod。每个Pod中声明的存储卷由Pod中的所有容器共享。K8s支持非常多的存储卷类型,特别的,支持多种公有云平台的存储,包括AWS,Google和Azure云;支持多种分布式存储包括GlusterFS和Ceph;也支持较容易使用的主机本地目录hostPath和NFS。K8s还支持使用Persistent Volumn Claim即PVC这种逻辑存储,使用这种存储,使得存储的使用者可以忽略后台的实际存储技术(例如AWS,Google或GlusterFS和Ceph),而将有关存储实际技术的配置交给存储管理员通过Persistent Volumn来配置。
architecture/concepts.md:101:### 持久存储卷(Persistent Volumn,PV)和持久存储卷声明(Persistent Volumn Claim,PVC)

另外小弟也在写一个kubernetes-handbook,很巧居然重名了,主要是kubernetes的实践教程。

部署node的kubelet时报错:k8s.io/kubernetes/pkg/kubelet/kubelet.go:422: Failed to list *v1.Node: nodes is forbidden: User "system:node:172.21.24.251" cannot list nodes at the cluster scope

严格按照教程一步步来的

master和node都在同一台机器上,master部署已经部署好,部署node的时候报出如下错误:

Nov 04 17:58:03 node-2 kubelet[28185]: E1104 17:58:03.101010   28185 reflector.go:205] k8s.io/kubernetes/pkg/kubelet/config/apiserver.go:47: Failed to list *v1.Pod: pods is forbidden: User "system:node:172.21.24.251" cannot list pods at the cluster scope
Nov 04 17:58:03 node-2 kubelet[28185]: E1104 17:58:03.101903   28185 reflector.go:205] k8s.io/kubernetes/pkg/kubelet/kubelet.go:422: Failed to list *v1.Node: nodes is forbidden: User "system:node:172.21.24.251" cannot list nodes at the cluster scope

刚开始没有发现这个错误,正常执行kubectl get csr得到以下结果:

NAME                                                   AGE       REQUESTOR           CONDITION
node-csr-P0zjqO2H6y4IO1O-ShoZEFvgeZ_C1PptCZ1aSe7ada4   2h        kubelet-bootstrap   Approved,Issued
node-csr-Q3cnW1eRmgu0Ttica8-gHmixcnkQbo9iDNuX0CH7zgU   1h        kubelet-bootstrap   Approved,Issued
node-csr-udzBibfgWpeRcOFgxGlM4_jTcH7J-9gcuplrDZUTqi4   2h        kubelet-bootstrap   Approved,Issued

全部都已经执行通过证书,之所以有三次是别的机器的申请,可以先暂时忽略

kubelet 的service配置文件:

[Unit]
Description=Kubernetes Kubelet Server
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
After=docker.service
Requires=docker.service

[Service]
WorkingDirectory=/var/lib/kubelet
EnvironmentFile=-/etc/kubernetes/config
EnvironmentFile=-/etc/kubernetes/kubelet
ExecStart=/usr/local/bin/kubelet \
            $KUBE_LOGTOSTDERR \
            $KUBE_LOG_LEVEL \
            $KUBELET_API_SERVER \
            $KUBELET_ADDRESS \
            $KUBELET_PORT \
            $KUBELET_HOSTNAME \
            $KUBE_ALLOW_PRIV \
            $KUBELET_POD_INFRA_CONTAINER \
            $KUBELET_ARGS
Restart=on-failure

[Install]
WantedBy=multi-user.target

kubelet的配置文件/etc/kubernetes/kubelet

###
## kubernetes kubelet (minion) config
#
## The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces)
KUBELET_ADDRESS="--address=172.21.24.251"
#
## The port for the info server to serve on
#KUBELET_PORT="--port=10250"
#
## You may leave this blank to use the actual hostname
#KUBELET_HOSTNAME="--hostname-override=172.21.24.251"
#
## location of the api-server
#KUBELET_API_SERVER="--api-servers=http://172.21.24.251:8080"
#
## pod infrastructure container
#KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=sz-pg-oam-docker-hub-001.tendcloud.com/library/pod-infrastructure:rhel7"
#
## Add your own!
KUBELET_ARGS="--cgroup-driver=cgroupfs --experimental-bootstrap-kubeconfig=/etc/kubernetes/bootstrap.kubeconfig --kubeconfig=/etc/kubernetes/kubelet.kubeconfig --require-kubeconfig --cert-dir=/etc/kubernetes/ssl --cluster-domain=cluster.local --hairpin-mode promiscuous-bridge --serialize-image-pulls=false"

/etc/kubernetes/bootstrap.kubeconfig配置文件

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUR2akNDQXFhZ0F3SUJBZ0lVYnN6cyszNVJOTG5ldEE4Znk0d1FnazVJa0lVd0RRWUpLb1pJaHZjTkFRRUwKQlFBd1pURUxNQWtHQTFVRUJoTUNRMDR4RURBT0JnTlZCQWdUQjBKbGFVcHBibWN4RURBT0JnTlZCQWNUQjBKbAphVXBwYm1jeEREQUtCZ05WQkFvVEEyczRjekVQTUEwR0ExVUVDeE1HVTNsemRHVnRNUk13RVFZRFZRUURFd3ByCmRXSmxjbTVsZEdWek1CNFhEVEUzTVRFd05EQTFNell3TUZvWERUSXlNVEV3TXpBMU16WXdNRm93WlRFTE1Ba0cKQTFVRUJoTUNRMDR4RURBT0JnTlZCQWdUQjBKbGFVcHBibWN4RURBT0JnTlZCQWNUQjBKbGFVcHBibWN4RERBSwpCZ05WQkFvVEEyczRjekVQTUEwR0ExVUVDeE1HVTNsemRHVnRNUk13RVFZRFZRUURFd3ByZFdKbGNtNWxkR1Z6Ck1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcmlZSnpXUFVVaC9Wc0FPMkhMY0QKWmY4ZWc4NEN6S3RtNlZpTytjTzNFZ0djcEJIa3hZMjRsT3dONHdjamk0NE90Z3UrV0YzS3I2M3g4RmZxb1VJNQo1cFRnV2d0cXFTbHpUUWdNK3FKTzFCMWZjTHdtamFqeFlGbFBOTDZOWkFnYU8vRDU4Tkp6dTVkVHo2VE8rNXVLCk55ZERtVk91eFM3VWtpVkovU3FiLzBhbjBZeEREWW5YV29mVnB5R0pHRU5qMkcySDhqWjVMay9ReTFQVlBUencKUmZiaDhSZXJWa3paT1FmRFI0YVA0T250L0xodzlFUFlmQ2RGd3RkN0c0Q3ZXSm96Z0Y1WDljanVMWWpkRzNucQpOb3A5clRrN0p2OVgwV1lyOHFzZUlhL1JuSHpoMGUvaDBFSzhmT2w0NVRPSDJlNHBIMnlVLzBLOEFVMUh3bHhsClZRSURBUUFCbzJZd1pEQU9CZ05WSFE4QkFmOEVCQU1DQVFZd0VnWURWUjBUQVFIL0JBZ3dCZ0VCL3dJQkFqQWQKQmdOVkhRNEVGZ1FVRmIwZ0s0ZWN1YUVCZ0VPUCtEejN0UUFjb2Vrd0h3WURWUjBqQkJnd0ZvQVVGYjBnSzRlYwp1YUVCZ0VPUCtEejN0UUFjb2Vrd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFBNSs3dUV6VWlIZ3BFTThmQzRwCjY4OXcrK29vRXBST1lsOEtmS1BBL1lCS2c5YkU2YWRnMGxlVzdzcFRlQVF0cmlZMFlsY2N5NWQwdHdzYllFL3UKQklJWXN4aEdvaUtocXR0TTNNRzZ6VmxvWitrRTFjaWg2ZDBLWWpJWFo0MkxVL1pRSGtIMWh3cDlkR0ZqcjhyTwpaMHo3NWxVNVZFWGU5S3ZsTmJuQXRxak1FSlB3SVVrWWlSTXhSVkhKMC9aWFRXTlBFYlVsanhncHQyd0lPYzhBCmcvZ3NaaUhhRVdHZ3g1QjFqbXZCd1d4dUpFQ2pMSjRQSzl1NU1QSlkvM05vVTlTdk9ROWNiMDluc2kyQUZleVQKZ0syVURRUVNLY1NweWtaQ2MzcElJSFZOVGhkVHlGZlQxdDQ0b05EWnRadXc2WjNTRWdPUWh0dEQ2S0VISFJ1Ygp5NGM9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
    server: https://172.21.24.251:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: kubelet-bootstrap
  name: default
current-context: default
kind: Config
preferences: {}
users:
- name: kubelet-bootstrap
  user:
    as-user-extra: {}
    token: 3449a2d2ce97647056e87f3020cb0a5e

部署apiserver的时候碰到一个错误

你好:
按照这个教程在部署的apiserver的时候出现了一个错误 unable to sync kubernetes service: Endpoints "kubernetes" is invalid: subsets[0].addresses[0].ip: Invalid value: "127.0.0.1": may not be in the loopback range (127.0.0.0/8)
请教一下这是什么错

关于cAdvisor

kubelet中默认集成的cAdvisor在1.8以后就不在:4194端口暴露了,现在:10255/metrics/cadvisor上,而kubelet配置文件中的默认cadvisor-port的值为0。

希望有空修正下。

错别字

文件:kubernetes-handbook/deploy/kubernetes-the-hard-way/03-compute-resources.md

第五行中Gegion应为Region.

关于自定义指标

  1. metric里的这些指标是什么意思?
  2. 如果将外部服务集成到k8s平台上,如何自定义指标来,收集流量,然后用kiali或naftis等可视化?
  3. 需要提供服务的那一方提供什么参数?
    不胜感激。

Host "sz-pg-oam-docker-hub-001.tendcloud.com" is unavailable

In node-installation.md, 安装和配置 kubelet section
The pod infrastructure container was set to --pod-infra-container-image=sz-pg-oam-docker-hub-001.tendcloud.com. But this host isn't available now. I think it would be better to use k8s's default value, at least that one is working.

RBAC 如何实现用户管理?

在使用 rbac 实现多租户隔离的时候,发现基本没有办法实现用户管理。
比如,我对 A Group 中的 u1 用户进行了认证,但授权的时候只对 A Group 进行了授权,以及对 A Group 中的其他个别用户单独进行了授权。这时候其他管理员没有办法查看 u1 用户的权限,除非提前知道
u1 属于 A Group。一旦用户多了就需要对用户进行管理,方便管理用户权限,请教一下有没有这方面的经验可以分享一下。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.