CoreDNS

kubeadmin-常用镜像(国内镜像)

試著忘記壹切 提交于 2019-12-06 16:14:12
#!/bin/sh # kubeadm config images list 查看当前容器版本 images=( kube-apiserver:v1.14.0 kube-controller-manager:v1.14.0 kube-scheduler:v1.14.0 kube-proxy:v1.14.0 pause:3.1 etcd:3.3.10 coredns:1.3.1 kubernetes-dashboard-amd64:v1.10.1 heapster-grafana-amd64:v5.0.4 heapster-amd64:v1.5.4 heapster-influxdb-amd64:v1.5.2 ) for imageName in ${images[@]} ; do docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/${imageName} docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/${imageName} k8s.gcr.io/${imageName} docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/${imageName}

从零开始入门 | Kubernetes 中的服务发现与负载均衡

穿精又带淫゛_ 提交于 2019-12-06 10:15:16
作者 | 阿里巴巴技术专家 溪恒 一、需求来源 为什么需要服务发现 在 K8s 集群里面会通过 pod 去部署应用,与传统的应用部署不同,传统应用部署在给定的机器上面去部署,我们知道怎么去调用别的机器的 IP 地址。但是在 K8s 集群里面应用是通过 pod 去部署的, 而 pod 生命周期是短暂的。在 pod 的生命周期过程中,比如它创建或销毁,它的 IP 地址都会发生变化,这样就不能使用传统的部署方式,不能指定 IP 去访问指定的应用。 另外在 K8s 的应用部署里,之前虽然学习了 deployment 的应用部署模式,但还是需要创建一个 pod 组,然后这些 pod 组需要提供一个统一的访问入口,以及怎么去控制流量负载均衡到这个组里面。比如说测试环境、预发环境和线上环境,其实在部署的过程中需要保持同样的一个部署模板以及访问方式。因为这样就可以用同一套应用的模板在不同的环境中直接发布。 Service:Kubernetes 中的服务发现与负载均衡 最后应用服务需要暴露到外部去访问,需要提供给外部的用户去调用的。我们上节了解到 pod 的网络跟机器不是同一个段的网络,那怎么让 pod 网络暴露到去给外部访问呢?这时就需要服务发现。 在 K8s 里面,服务发现与负载均衡就是 K8s Service。上图就是在 K8s 里 Service 的架构,K8s Service

从零开始入门 | Kubernetes 中的服务发现与负载均衡

你。 提交于 2019-12-05 16:33:16
作者 | 阿里巴巴技术专家 溪恒 一、需求来源 为什么需要服务发现 在 K8s 集群里面会通过 pod 去部署应用,与传统的应用部署不同,传统应用部署在给定的机器上面去部署,我们知道怎么去调用别的机器的 IP 地址。但是在 K8s 集群里面应用是通过 pod 去部署的, 而 pod 生命周期是短暂的。在 pod 的生命周期过程中,比如它创建或销毁,它的 IP 地址都会发生变化,这样就不能使用传统的部署方式,不能指定 IP 去访问指定的应用。 另外在 K8s 的应用部署里,之前虽然学习了 deployment 的应用部署模式,但还是需要创建一个 pod 组,然后这些 pod 组需要提供一个统一的访问入口,以及怎么去控制流量负载均衡到这个组里面。比如说测试环境、预发环境和线上环境,其实在部署的过程中需要保持同样的一个部署模板以及访问方式。因为这样就可以用同一套应用的模板在不同的环境中直接发布。 Service:Kubernetes 中的服务发现与负载均衡 最后应用服务需要暴露到外部去访问,需要提供给外部的用户去调用的。我们上节了解到 pod 的网络跟机器不是同一个段的网络,那怎么让 pod 网络暴露到去给外部访问呢?这时就需要服务发现。 在 K8s 里面,服务发现与负载均衡就是 K8s Service。上图就是在 K8s 里 Service 的架构,K8s Service

从零开始入门 | Kubernetes 中的服务发现与负载均衡

你离开我真会死。 提交于 2019-12-04 17:40:53
作者 | 阿里巴巴技术专家 溪恒 一、需求来源 为什么需要服务发现 在 K8s 集群里面会通过 pod 去部署应用,与传统的应用部署不同,传统应用部署在给定的机器上面去部署,我们知道怎么去调用别的机器的 IP 地址。但是在 K8s 集群里面应用是通过 pod 去部署的, 而 pod 生命周期是短暂的。在 pod 的生命周期过程中,比如它创建或销毁,它的 IP 地址都会发生变化,这样就不能使用传统的部署方式,不能指定 IP 去访问指定的应用。 另外在 K8s 的应用部署里,之前虽然学习了 deployment 的应用部署模式,但还是需要创建一个 pod 组,然后这些 pod 组需要提供一个统一的访问入口,以及怎么去控制流量负载均衡到这个组里面。比如说测试环境、预发环境和线上环境,其实在部署的过程中需要保持同样的一个部署模板以及访问方式。因为这样就可以用同一套应用的模板在不同的环境中直接发布。 Service:Kubernetes 中的服务发现与负载均衡 最后应用服务需要暴露到外部去访问,需要提供给外部的用户去调用的。我们上节了解到 pod 的网络跟机器不是同一个段的网络,那怎么让 pod 网络暴露到去给外部访问呢?这时就需要服务发现。 在 K8s 里面,服务发现与负载均衡就是 K8s Service。上图就是在 K8s 里 Service 的架构,K8s Service

How to patch a ConfigMap in Kubernetes

南楼画角 提交于 2019-12-04 04:13:53
Kubernetes ships with a ConfigMap called coredns that lets you specify DNS settings. I want to modify or patch a small piece of this configuration by adding: apiVersion: v1 kind: ConfigMap data: upstreamNameservers: | ["1.1.1.1", "1.0.0.1"] I know I can use kubectrl edit to edit the coredns ConfigMap is there some way I can take the above file containing only the settings I want to insert or update and have it merged on top of or patched over the existing ConfigMap ? The reason for this is that I want my deployment to be repeatable using CI/CD. So, even if I ran my Helm chart on a brand new

kubeadm安装kubernetes1.16.0(二-配置安装metrics-server)

白昼怎懂夜的黑 提交于 2019-11-30 12:30:50
安装metrics-server kubeadm默认安装是就安装了coredns 下载yaml文件 github的链接 metrics-server 所有的yaml文件都需要下载到本地 应用 问题处理 连接node1报错,报错信息为manager.go:111] unable to fully collect metrics: [unable to fully scrape metrics from source kubelet_summary:node1: unable to fetch metrics from Kubelet node1 (node1): Get https://node1:10250/stats/summary?only_cpu_and_memory=true : dial tcp: lookup node1 on 10.96.0.10:53: no such host, unable to fully scrape metrics from source kubelet_summary:node2: unable to fetch metrics from Kubelet node2 (node2): Get https://node2:10250/stats/summary?only_cpu_and_memory=true : dial tcp:

Kubernetes 1.16.x 升级后的若干问题

[亡魂溺海] 提交于 2019-11-30 06:02:38
Kubernentes已经是1.16.3版本了,引入了不少很好的新功能。不过,如果是从以前的版本跨大版本升级上来的,还是会遇到很多的问题。 想要升级,参考: Kubernetes 1.16.0快速升级 1、主要变化 除了apiserver/controller/scheduler几个主要的服务的镜像版本变为1.16.3之外,其它包括: etcd使用的是3.3.15-0(还不是最新的4.x系列)。 CoreDNS使用的是 1.6.2(1.15.x还是1.3.1,变化比较大),这个会引起启动失败。 2、Docker支持 Ubuntu系统自动升级Docker-CE到了19.3.4,但是使用kubectl get node -owide获取节点信息发现,始终是Not Ready状态。 查看状态:kubectl describe node/podc01,发现CNI失败。 将其降级到19.3.2后就可以了。 方法: 查看可用版本:sudo apt list docker-ce -a 安装制定版本:sudo apt install docker-ce=xxxxxx Update the /etc/docker/daemon.json: https://my.oschina.net/u/2306127/blog/2996776 3、CoreDNS CoreDNS使用的是 1.6.2(1.15

k8s master查看不到worker节点

久未见 提交于 2019-11-30 05:55:42
k8s master查看不到worker节点 一、 问题 master节点已经安装好,但是worker加入master显示成功,但是在master节点上使用 kubectl get nodes 命令查看不到,且master节点时而 ready 时而 NotReady , worker 重置 kubeadm reset 后, master 节点恢复正常。 二 、 解决方法 通过设置 hosts 和 hostname 解决 2.1 设置hosts $ cat /etc/hosts 192.168.25.131 master01 192.168.25.132 node01 192.168.25.133 node02 2.2 设置hostname $ hostnamectl set-hostname master01 | node01 | node02 2.3 可能存在的问题 当master节点已经安装好了之后,修改完host #查看pods,coredns一直处于ContainerCreating状态 $ kubectl get pod --all-namespaces corednsxxx ContainerCreating corednsxxx ContainerCreating 使用其他Blog上的方案 $ rm -rf /var/lib/cni/flannel/* && rm

超实用!K8s 开发者必须知道的 6 个开源工具

喜你入骨 提交于 2019-11-29 08:24:18
文章来源:云原生实验室, 点击查看原文 。 导读 :Kubernetes 作为云原生时代的“操作系统”,熟悉和使用它是每名用户(User)的必备技能。如果你正在 Kubernetes 上工作,你需要正确的工具和技巧来确保 Kubernetes 集群的高可用以及工作负载的稳定运行。本篇文章将为你详细介绍 6 个实用的 Kubernetes 开源工具,千万不要错过。 前言 随着 Kubernetes 的发展和演变,人们可以从内部来驯服它的无节制行为。但有些人并不情愿干等 Kubernetes 变得易于使用,并且为已投入生产的 Kubernetes 中遇到的很多常见问题制定了自己的解决方案。 这里我们将介绍一些提高操作效率的技巧,同时列举几个比较有用的开源 Kubernetes 工具,这些工具以各种方式简化 Kubernetes,包括简化命令行交互,简化应用程序部署语法等。 kubectl 自动补全 kubectl 这个命令行工具非常重要,与之相关的命令也很多,我们也记不住那么多的命令,而且也会经常写错,所以命令自动补全是很有必要的,kubectl 工具本身就支持自动补全,只需简单设置一下即可。 bash 用户 大多数用户的 shell 使用的是 bash ,Linux 系统可以通过下面的命令来设置: $ echo "source <(kubectl completion bash)"

coredns pods have CrashLoopBackOff or Error state

自古美人都是妖i 提交于 2019-11-29 07:54:15
I'm trying to set up the Kubernetes master, by issuing: kubeadm init --pod-network-cidr=192.168.0.0/16 followed by: Installing a pod network add-on (Calico) followed by: Master Isolation issue: coredns pods have CrashLoopBackOff or Error state: # kubectl get pods -n kube-system NAME READY STATUS RESTARTS AGE calico-node-lflwx 2/2 Running 0 2d coredns-576cbf47c7-nm7gc 0/1 CrashLoopBackOff 69 2d coredns-576cbf47c7-nwcnx 0/1 CrashLoopBackOff 69 2d etcd-suey.nknwn.local 1/1 Running 0 2d kube-apiserver-suey.nknwn.local 1/1 Running 0 2d kube-controller-manager-suey.nknwn.local 1/1 Running 0 2d kube