Kubernetes相关的问题汇总

  • 时间:
  • 浏览:6
  • 来源:uu快3官网app_uu快3豹子赚钱

16. 目前采用的版本是Kubernetes v1.10.0,以下是对应的镜像版本

8. 通过kubeadm token命令生成兩个多forever的token,默认的24h,能助 后续join新的节点到集群。

kubeadm join masterIp:6443 --token bhpmca.yz08394xcolahg0y --discovery-token-ca-cert-hash sha256:f2d058d7f6489dd71aba1c7200adf4e7e24663a6db54e7e1fbc3ca079f616bd92

原理:创建兩个多ServiceAccount,并将该SA绑定到cluster-admin或多或少ClusterRole角色上,就拥有了该角色的权限,而或多或少角色拥有整个集群的所有权限。

k8s将Service的名称当做域名注册到kube-dns,也不在集群中就可不可能助 够通过serverName访问服务了。

kubectl rollout undo deployment xxx-dep --namespace=default

kubectl rollout undo deployment xxx-dep --revision=1 --namespace=default

#关键字根据你创建的create来,比如admin,dashboard

.spec.minReadySeconds: 新建的Pod情况报告为ready持续时间合适 为它,才认为Pod Available(Ready),默认200s

.spec.strategy.rollingUpdate.maxSurge: 默认是desired Pods数的25%,Scale Up新的ReplicaSet时,允许的maxSurge,可不可能助 够是整数可能性百分比,向上取整

.spec.strategy.rollingUpdate.maxUnavailable: 默认为desired Pods数的25%,Scale Down旧的ReplicaSet时,允许的maxUnavailable,可不可能助 够是整数可能性百分比,向下取整

也不,在Deployment rollout时,可能助 够保证Available(Ready) Pods数不低于 desired pods number - maxUnavailable; 保证所有的Pods数很多 于 desired pods number + maxSurge。

再创建kubelet.service.d目录,并从github上下载

10. 通过java -jar启动jar包项目时,老出服务发现失败的问题报告 图片

也不在shell脚本中才可不可能助 够执行: kubectl -s http://masterIp:200200 apply -f *.yaml

为了复杂化,可不可能助 够写在/etc/profile,并执行source /etc/profile使其生效,注意:master节点和node节点采用不一样的配置文件,权限不一样。

15. 修改k8s集群的端口范围,默认是20000-32767,为了不合或多或少应用冲突,通过修改配置/etc/kubernetes/manifests/kube-apiserver.yaml实现

kubectl set image deployment xxx-dep myregistry:20000/xxx=myregistry:20000/xxx:v2 --namespace=default

13. Node设置标签,将Pod调度指定Node

kube-dns通过nslookup指令检查DNS查询服务的健康情况报告,pod中的容器查询DNS时是通过serverName.namespace子域名查询的,或多或少最好在serviceName上方换成namespace,防止可能性的错误,类似于 : nslookup kubernetes.default

可能助 够创建kubelet.service.d目录,并在其下创建10-kubeadm.conf文件,内容如下:

最终,通过server.host=rabbitmq.default,则访问正常,见附录2。

12. Node的隔离与恢复

kubectl rollout history deployment xxx-dep --namespace=default

kubectl rollout history deployment xxx-dep --revision=2 --namespace=default

当然,在kubernetes集群中,最佳的做法是,为每兩个多应用任务管理器的服务账户授予角色,确保该账户在指定命名空间下控制应用任务管理器的运行。

比如在项目的rabbitmq.properties文件中定义了Kubernetes的serviceName来访问节点

附录1. RBAC(Role-Base-Access-Control),基于角色的权限控制策略。

11. 通过netstat -npt | grep 20039 | wc -l查看端口连接个数

3. Kubernetes 1.8开始要求关闭系统的Swap,可能性不关闭,默认配置下kubelet将无法启动。可不可能助 够通过kubelet的启动参数--fail-swap-on=false更改或多或少限制。

涉及ServiceAccount、Role、RoleBinding,Kubernetes集群中也兩个多默认的ClusterRole、ClusterRoleBinding拥有所有权利的角色。

或多或少简单的做法是:创建兩个多ServiceAccount,让它通过ClusterRoleBinding绑定到ClusterRole(cluster-admin),则新创建的用户获得了集群的所有权限。

5. 通过kubeadm init命令创建集群想要,会报错http://localhost:10255/healthz出错,发现是kubelet服务这么 启动

kube-dns支持的域名格式,具体为:<service_name>.<namespace>.svc.<cluster_domain>

自签名的步骤如下:

RBAC人太好很灵活,也不它的缺点是这么 提供顺序操作的机制,原因它无法应用到或多或少有严格操作次序的系统。

14. 应用的滚动升级

4. 通过kubectl命令获取secret,以及token,用于登录dashboard UI,基于RBAC(基于角色的访问控制)见附录

17. kubelet指定本地镜像

#这里还涉及兩个多https访问的问题报告 图片,可能助 够在master节点(这里要求dashboard部署在master节点上)生成自签名的证书,也不在kubernetes-dashboard.yaml文件中修改:

6. 集群部署成功想要,发送kubectl命令还是无法获取集群信息,这里可能助 够export KUBECONFIG参数

2. 定义deployment时,与rolling update相关项

kubeadm token create --ttl=0

另外,可能性忘记了sha256,这里也提供兩个多查询依据,如下:

这里也可不可能助 够直接通过命令从github上下载

每个Pod中的/etc/resolv.conf文件中的参数:nameserver 10.96.0.10,对应也不kube-dns服务的ClusterIp,Pod的域名解析服务器,当然是通过kubelet的--cluster-dns参数设置的。

2. 设置iptables的FORWARD链,Docker从1.13版本开始调整了默认的防火墙规则,禁用了iptables filter表中FOWARD链,也不会 引起Kubernetes集群中跨Node的Pod无法通信。

1. 设置系统参数 – 允许路由转发,不对bridge的数据进行防止

kubelet 修改配置以使用本地自定义pause镜像

7. kubectl proxy命令目前来说,使用的场景是,自动化部署脚本中,可能助 够远程部署Pod至Kubernetes集群,可能性可能助 够http访问,绕过https。

9. 集群清理命令

本文转自开源中国-Kubernetes相关的问题报告 图片汇总

类似于 :在tiller-world的namespace下创建tiller用户,通过RoleBinding绑定到兩个多自定义的Role上。

1. 更新deployment,当当我们当当我们当当我们当当我们当当我们当当我们只需更新deployment上方的template,当当我们都当当我们当当我们当当我们当当我们当当我们更新deployment时,当有合适 的Pod产生,k8s才会删除老的Pod,当老的Pod被删除足够多时,才会继续产生新的Pod。

附录2. 服务发现

以上是RC的滚动升级依据,目前有更好的Deployment资源管理:

也不可能性是直接server.host=rabbitmq,任务管理器中访问失败,也不查看dns,ping服务名ip显示全部回会 正常

其中cluster_domain可不可能助 够使用kubelet的--cluster-domain=SomeDomain参数进行设置,通常设置为:cluster.local