k8s集群搭建DNS服务

【Kubernetes】Service学习(二)DNS服务的搭建和配置 此文为学习《Kubernetes权威指南》和阿里云原生公开课的相关笔记 一、集群范围内的DNS服务:coreDNS 作为服务发现机制的基本功能,在集群内需要能够通过服务名对服务进行访问,这就需要一个进群范围内的DNS服务来完成从服务到ClusterIP的解析。DNS服务在K8s上经历3个阶段的发展,从SkyDNS到KubeDNS,从1.11版本开始来到了coreDNS。 CoreDNS作为... 阅读详情

一、k8s集群中DNS服务介绍 

作为服务发现机制的基本功能,在集群内需要能够通过服务名对服务进行访问,这就需要一个集群范围的DNS服务来完成服务名到ClusterIP的解析。

 

DNS在k8s集群中发展的三个阶段

1. k8s版本 < 1.4 ,DNS由SkyDNS提供

  SkyDNS有4个容器组成

   kube2sky: 监控k8s集群中Service资源的变化

   skydns: 从etcd中读取DNS记录,并为客户端容器应用提供DNS查询服务

   healthz: 提供对skydns服务的健康检查功能

   etcd:  用于保存DNS记录

 

skydns架构图如下:

2. k8s版本 1.4~1.11

  从k8s1.4版本以后SkyDNS组件便被KubeDNS替换,KubeDNS去掉了etcd直接保存在内存中,以提高查询性能。

  KubeDNS由3个容器组成

   kubedns: 监控k8s集群中Service资源的变化,根据Service的名称和IP地址生成DNS记录

   dnsmasq:从kubedns中获取DNS记录,提供DNS缓存,为客户端容器应用提供DNS查询服务

   sidecar: 提供对kubedns和dnsmasq服务的健康检查功能。

 

KubeDNS架构图

 

3. k8s版本大于1.11以后(至今1.19)

   从k8s1.11版本开始,DNS服务由CoreDNS提供。CoreDNS是CNCF基金会的一个项目,是用Go语言实现的高性能、插件式、易扩展的DNS服务器。

CoreDNS只使用了一个容器coredns

架构图如下:

 

 

二、CoreDNS服务搭建

1.在创建DNS服务之前修改每个Node上kubelet的启动参数

修改每个kubelet的启动参数,加上以下两个参数:

--cluster-dns=clusterIP  #clusterIP是具体配置的k8s可用的ip地址

--cluster-domain=cluster.local #配置DNS服务中设置的域名

修改启动参数可在:10-kubeadm.conf 或在kubelet其他加载的配置文件中添加配置(比如1.18的, /etc/sysconfig/kubelet)

配置完之后重启kubelet

 

2.搭建DNS服务

项目源码:https://github.com/coredns/coredns

官网中文介绍:https://kubernetes.io/zh/docs/tasks/administer-cluster/dns-custom-nameservers/

对应的yaml文件:https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/dns/coredns/coredns.yaml.base

 

将coredns对应的yaml文件下载,需要将配置文件中的大写属性进行修改

如: __PILLAR__DNS__DOMAIN__ 改成刚才配置的--cluster-domain的值

__PILLAR__DNS__MEMORY__LIMIT__、__PILLAR__DNS__SERVER__

如果因为防火墙的问题拉取不到image: k8s.gcr.io/coredns:1.7.0,建议将coredns的镜像配置修改,

coredns的参考yaml文件(coredns.yaml):

# __MACHINE_GENERATED_WARNING__

apiVersion: v1
kind: ServiceAccount
metadata:
  name: coredns
  namespace: kube-system
  labels:
      kubernetes.io/cluster-service: "true"
      addonmanager.kubernetes.io/mode: Reconcile
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    kubernetes.io/bootstrapping: rbac-defaults
    addonmanager.kubernetes.io/mode: Reconcile
  name: system:coredns
rules:
- apiGroups:
  - ""
  resources:
  - endpoints
  - services
  - pods
  - namespaces
  verbs:
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - nodes
  verbs:
  - get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  annotations:
    rbac.authorization.kubernetes.io/autoupdate: "true"
  labels:
    kubernetes.io/bootstrapping: rbac-defaults
    addonmanager.kubernetes.io/mode: EnsureExists
  name: system:coredns
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: system:coredns
subjects:
- kind: ServiceAccount
  name: coredns
  namespace: kube-system
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: coredns
  namespace: kube-system
  labels:
      addonmanager.kubernetes.io/mode: EnsureExists
data:
  Corefile: |
    .:53 {
        errors
        health {
            lameduck 5s
        }
        ready
        kubernetes cluster.local in-addr.arpa ip6.arpa {
            pods insecure
            fallthrough in-addr.arpa ip6.arpa
            ttl 30
        }
        prometheus :9153
        forward . /etc/resolv.conf {
            max_concurrent 1000
        }
        cache 30
        loop
        reload
        loadbalance
    }
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: coredns
  namespace: kube-system
  labels:
    k8s-app: kube-dns
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile
    kubernetes.io/name: "CoreDNS"
spec:
  # replicas: not specified here:
  # 1. In order to make Addon Manager do not reconcile this replicas parameter.
  # 2. Default is 1.
  # 3. Will be tuned in real time if DNS horizontal auto-scaling is turned on.
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 1
  selector:
    matchLabels:
      k8s-app: kube-dns
  template:
    metadata:
      labels:
        k8s-app: kube-dns
      annotations:
        seccomp.security.alpha.kubernetes.io/pod: 'runtime/default'
    spec:
      priorityClassName: system-cluster-critical
      serviceAccountName: coredns
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 100
            podAffinityTerm:
              labelSelector:
                matchExpressions:
                  - key: k8s-app
                    operator: In
                    values: ["kube-dns"]
              topologyKey: kubernetes.io/hostname
      tolerations:
        - key: "CriticalAddonsOnly"
          operator: "Exists"
      nodeSelector:
        kubernetes.io/os: linux
      containers:
      - name: coredns
        image: coredns/coredns:1.7.0
        imagePullPolicy: IfNotPresent
        resources:
          limits:
            memory: 170Mi
          requests:
            cpu: 100m
            memory: 70Mi
        args: [ "-conf", "/etc/coredns/Corefile" ]
        volumeMounts:
        - name: config-volume
          mountPath: /etc/coredns
          readOnly: true
        ports:
        - containerPort: 53
          name: dns
          protocol: UDP
        - containerPort: 53
          name: dns-tcp
          protocol: TCP
        - containerPort: 9153
          name: metrics
          protocol: TCP
        livenessProbe:
          httpGet:
            path: /health
            port: 8080
            scheme: HTTP
          initialDelaySeconds: 60
          timeoutSeconds: 5
          successThreshold: 1
          failureThreshold: 5
        readinessProbe:
          httpGet:
            path: /ready
            port: 8181
            scheme: HTTP
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            add:
            - NET_BIND_SERVICE
            drop:
            - all
          readOnlyRootFilesystem: true
      dnsPolicy: Default
      volumes:
        - name: config-volume
          configMap:
            name: coredns
            items:
            - key: Corefile
              path: Corefile
---
apiVersion: v1
kind: Service
metadata:
  name: kube-dns
  namespace: kube-system
  annotations:
    prometheus.io/port: "9153"
    prometheus.io/scrape: "true"
  labels:
    k8s-app: kube-dns
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile
    kubernetes.io/name: "CoreDNS"
spec:
  selector:
    k8s-app: kube-dns
  clusterIP: 10.96.0.100
  ports:
  - name: dns
    port: 53
    protocol: UDP
  - name: dns-tcp
    port: 53
    protocol: TCP
  - name: metrics
    port: 9153
    protocol: TCP

 

$  kubectl create -f coredns.yaml

     创建CoreDNS服务

 

$ kubectl get deployment --namespace=kube-system

  查看对应的coredns Deployment是否正常启动

 

$ kubectl get pods --namespace=kube-system

查看对应的coredns Pod是否正常启动

 

$  kubectl get services --namespace=kube-system

 查看对应的core-dns service是否正常启动

 

创建busybox的pod来验证dns功能

文件名:busybox.yaml

apiVersion: v1
kind: Pod
metadata:
 name: busybox
 namespace: default
spec:
 containers:
 - name: busybox
   image: busybox:1.28.4
   imagePullPolicy: IfNotPresent
   command:
   - sleep
   - "3600"

 

创建该busybox的Pod

$  kubectl create busybox.yaml

 

验证dns服务是否正常

$ kubectl exec busybox -- nslookup redis-master

看到系统可以根据服务名进行解析

 

问题与解决:

如果执行以上指令出现了dns can't resolve kubernetes.default and/or cluster.local错误

https://github.com/kubernetes/kubernetes/issues/66924

则很可能是因为busybox的镜像版本导致的,busybox不能使用最新版本,要使用1.28.4及以下版本。

 

best wish!

 

kubernetes学习记录(5)——服务发现机制与Cluster DNS的安装(无CA认证版) 服务发现机制Kubernetes提供了两种发现Service的方法:1.环境变量当Pod运行的时候,Kubernetes会将之前存在的Service的信息通过环境变量写到Pod中。这种方法要求Pod必须要在Service之后启动。在Service之前启动的Pod就不会有该Service的环境变量。采用DNS的方式就没有这个限制。2.DNS当有新的Service创建时,就会自动生成一条DNS记录。使用 阅读详情

相关推荐

部署kubernetes集群--部署Master节点服务

本文参考 https://blog.stanley.wang 跟我一步步安装部署kubernetes集群 安装前准备 环境准备 五台虚机,操作系统CentOS Linux release 7.9.2009 (Core),内核版本3.10.0-1160.el7.x86_64 ip 主机名 角色 10.4.7.11 node7-11.host.com k8s代理节点1 10.4.7.12 node7-12.host.com k8s代理节点2 10.4.7.21 node7-21.ho.

勿念旧梦 542

K8s系列之:DNS服务搭建指南

K8s系列之:DNS服务搭建指南一、skydns配置文件说明 作为服务发现机制的基本功能,在集群内需要能够通过服务名对服务进行访问,就需要一个集群范围的DNS服务来完成服务名到ClusterIP的解析。 K8s提供的虚拟DNS服务名为skydns,由4个组件组成。 etcd:DNS存储 kube2sky:将K8s Master中的Service(服务注册到etcd)。 skyDNS:提供DNS域名解析服务 healthz:提供对skydns服务的健康检查功能。 一、skydns配置文件说明 skydn

zhengzaifeidelushang的博客 2229

二进制安装Kubernetes 单集群

一、集群规划 k8s-master1 10.0.19.127 k8s-master2 10.0.19.128 k8s-master3 10.0.19.129 k8s-node1 10.0.19.130 k8s-node2 10.0.19.131 操作系统版本:7.3 二、初始化服务器 1 设置防火墙为 Iptables 并设置空规则 【所有节点都执行】 [root@k8s-master1 ~]# systemctl stop firewalld [root@k8s-maste

a13568hki的博客 1403

Kubelet clusterDNS参数

Kubelet config file -- > clusterDNS clusterDNS: - "10.32.0.10" The above is a flag passed to the kubelet file, i dont know what it refers to clsuter DNS ? Is it refers to VPC CIDR or any subnet CIDR ? 1 Answer ActiveOldestScore It is the address

小楼一夜听春雨,深巷明朝卖杏花 1878

【K8S系列】深入解析DNS

在 Kubernetes 中,有两种常见的 DNS 服务器: kube-dns 也是(Cluster DNS) CoreDNS 这两个都是 Kubernetes 集群中的默认 DNS 服务器,用于为 Pod 和 Service 提供域名解析服务。

颜淡慕潇 3万+

dnsmasq-adblock:来自adguard的dnsmasq adblock规则

dnsmasq-adblock 华硕路由器文件 adguard-dnsmasq2.conf 该文件是来自adguard的dnsmasq的adblock 你的年龄 `ssh ' 和cd /jffs/configs/dnsmasq.d admin@RT-AX86U-B368:/jffs/configs/dnsmasq.d# wget https://github.com/bunnyblueair/dnsmasq-adblock/raw/main/adguard-dnsmasq2.conf 接着 restart dnsmasq or router

搭建K8S集群之Harbor仓库、DNS和ETCD部署

在上一篇文章中,我们介绍了K8S集群的整体架构和各角色节点上的组成组件及其作用,在这篇文章中,我们来实际搭建一个K8S集群。在K8S集群中,各个组件之间通信是通过http/https协议...

后场技术 736

MFC下使用C++操作Word文档

由于项目需求,在MFC环境下操作将数据和图片写入word文档,之前没有接触过,网上查阅了很多资料,终于把任务完成。理解的不是很透彻,但是这些东西应该够用了,写篇博客记录一下,以便以后再用到。 (1)VS环境下创建一个MFC应用程序,然后在项目上单击右键,选择 类向导-----添加类----类型库中的MFC类。在弹出的对话框中选择文件,位置选择office安装目录下的...

GIS_yuhua的博客 7581

【kubernetes】k8s集群的搭建安装详细说明【创建集群、加入集群、踢出集群、重置集群...】【含离线搭建方法】、网络插件calico安装

说明 k8s最好准备3台机子,其中: 一台master节点 2台node节点 我环境中的3台主机名和ip分别如下: 注:主机名不要使用localhost.localdomain maset:192.168.59.142 node1:192.168.59.143 node2:192.168.59.144 这些主机不一定非要通外网才能做啊,我的这3台主机是没有通外网的,但我准备了一台通外网的主机,将所有需要安装的包通过离线的方式上传到这3服务器上的,方法见下面这篇博客。 【yum】linux

崔崇鑫的博客,你linux/云运维工作中的百科全书。 5464

中国银行信息科技岗位笔试

收到笔试只剩四天了,收集的资料,后续会更新

weixin_46050242的博客 4596

Win10环境下VS2019离线部署OnnxRuntime的完整指南

本文提供了在Windows 10系统下,为Visual Studio 2019进行OnnxRuntime离线部署的完整教程。针对网络受限环境,详细讲解了如何获取正确的离线安装包、配置本地NuGet源,并逐步指导项目配置与测试,确保AI模型在C++环境中顺利运行。

weixin_29205061的博客 401

K8S 1.8 平台搭建手册

K8s平台搭建手册 1搭建环境说明 2安装步骤 2.1初始化环境 在每台服务器上执行 #编辑每台服务器的 /etc/hosts 文件,配置hostname 通信 vi /etc/hosts 192.168.100.71 k8s-master.doone.com 192.168.90.6 k8s-slave1.doone.com 192.168.90.7 k8s-slave2.doone.com 2.2关闭防火墙 在每台服务器上执行 systemctl stop firewalld.ser

沧海之巅的专栏 7569

告别手动打点!用Cesium为你的大疆无人机快速生成区域巡查航线(保姆级教程)

本文详细介绍了如何利用Cesium平台为大疆无人机快速生成区域巡查航线的保姆级教程。通过自动化航线规划,告别传统手动打点的繁琐操作,实现高效、无死角的区域覆盖。文章涵盖环境搭建、实战案例及高级优化技巧,特别适合无人机操作员和巡检工作者提升工作效率。

weixin_30399821的博客 521

dns服务器_k8s之DNS服务器搭建

导读在使用k8s部署springboot+redis简单应用这篇文章中,spring boot连接redis是直接使用的IP连接,那么可不可以直接使用服务名称进行连接呢?答案是可以的,这就是k8s集群范围内的DNS服务来完成服务名到ClusterIP的解析,接下来就一起看一下如何搭建DNS服务器。搭建DNS服务器简介k8s提供的DNS服务是skydns,由四个组件组成etcd:DNS信息...

weixin_39682511的博客 239

将雷达连接到树莓派的串口

dev/ttyAMA0 是树莓派的主要 UART(用于 GPIO 引脚 8 (TXD) 和 10 (RXD))。通常,树莓派使用 GPIO 引脚 8 (TXD) 和 10 (RXD) 进行串口通信。树莓派上通常有两个串口:/dev/ttyS0 和 /dev/ttyAMA0。你需要确认雷达的 TX 和 RX 引脚,并与树莓派的对应引脚连接。VCC(电源)连接到树莓派的 3.3V 或 5V(根据雷达的要求)MR(Receive)连接到树莓派的 GPIO 8 (TXD)GND(地)连接到树莓派的 GND。

qq_45943628的博客 1467

CKS-CN考试之路----04

根据上面信息我们知道,这个pod运行在default命名空间下,pod名字为cpu-77cd5ddcbf-bvb8w。可以从/etc/falco/falco_rules.yaml中获得相关内容,大概在文件的460行左右.编辑/etc/falco/falco_rules.local.yaml。7c688a8bfd69即是我们想要获得的docker id。将行为不当 Pod 的 Deployment 缩放为零副本。根据我们刚才定义的rule生成报告。访问/dev/mem 的 Pod。那么如果考试记不住怎么办?

Q先生 603

搭建及使用K8s集群 <简介>

搭建及使用K8s集群 <简介>搭建及使用K8s集群 简介 概述 Docker Kubernetes Flannel-docker网络解决方案 ETCD-高可用强一致性的服务发现存储仓库 k8s-dashboard-webUI k8s-DNS-服务发现 k8s-ingress对外暴露访问的负载均衡 1. Docker 2. Kubernetes 3. Flannel—-docker网络解决方案 4.

JustHaveTry的专栏 4948

YOLO11涨点优化:原创自研 | 魔改Bottleneck,具备多尺度和特征通道融合的结构

可以将C3k2_MSAMCS放在neck,或者backbone和neck同时修改,具体看自己数据集的涨点情况决定

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1653

K8s单master集群搭建

快速搭建一主两从的K8s集群

fruitless的博客 398

IgH EtherCAT 从入门到精通:第 5 章 多主站与系统集成配置

本文介绍了 EtherCAT 多主站配置与系统集成方法。主要内容包括: 多主站实例配置原理:通过内核模块参数指定多个主站设备,每个主站独立管理一条 EtherCAT 总线,最多支持32个主站实例。 配置文件详解:在/etc/ethercat.conf中通过MASTER<X>_DEVICE变量定义各主站绑定的网卡或MAC地址,支持冗余备份配置。 系统服务集成:提供了systemd服务单元文件和传统init.d脚本两种方式实现开机自启动和管理,并建议通过override文件定制服务依赖关系。 架构示

从事嵌入式linux android驱动开发,拥有全栈能力 354

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

项目环境搭建【Docker+k8s】一 || 服务器规划

项目环境搭建【Docker+k8s】一 || 服务器规划 1、本系列课程简介 本系列课程是一套完整的k8s集群部署与微服务架构实战项目开发系列课程,其中【Docker+k8s】是系列课程中的项目集成环境搭建课程,后期会持续更新微服务架构体系教程,敬请大家关注;本系列所有教程内容均已经在centOS7服务器上进行实践,期间遇到的坑都在教程中进行了介绍,本课程的目的就是为初学者提供一个快速的学习方案。 2、服务规划 服务名称 主机名称 服务地址 服务说明 自建DNS系统 YN100-21.hos

qq_42903086的博客 368

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

(shell批量版)二进制高可用安装k8s集群v1.23.5版本,搭配containerd容器运行时

目录 第1章 安装前准备 1.1 节点规划 1.2 配置NTP 1.3 bind安装DNS服务 1.4 修改主机DNS 1.5 安装runtime环境及依赖 1.5.1 安装docker运行时 1.5.2 安装containerd运行时 1.6 安装habor仓库 1.7 配置高可用 第2章 k8s安装集群master 2.1 下载二进制安装文件 2.2 生成证书 2.2.1 生成etcd证书 2.2.2 生成k8s证书 2.3 安装etcd 2.4 安装apiserc

weixin_42380501的博客 3763

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

k8s部署详细笔记の环境搭建(上)

文章目录一、 前言二、准备五台虚拟机,设置好网络 一、 前言 本次搭建k8s环境主要是在window进行搭建。 二、准备五台虚拟机,设置好网络 2.1 设置子网和网关 2.2 创建五台虚拟机,分别取名为hdss248-11、hdss248-12、hdss248-21、hdss248-22、hdss248-200 这里以创建hdss11为例 进入虚拟机,编辑 vi /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=Ethernet PROXY_METHOD=

weixin_40496191的博客 1849

k8s(一)——k8s组件介绍以及集群部署

k8s(一)——k8s组件介绍以及集群部署

yemuxiaweiliang的博客 2154

在CentOS 7上安装使用Kubernetes:管理云平台多个主机上的容器化应用

在本文中,我安装了k8s集群,尝试设置托管真实Web服务所需的所有服务,然后进行总结。设置了一个主3小兵部署。如果使用的是vmware / virtualbox,请确保在vswitch上启用混杂模式。我没有实现HA。对于Kubernetes的HA部署,请参考官方的HA指南。

RToax 714

kubernetes集群脚本值得收藏

使用shell脚本搭建k8s集群 修正1 :脚本1的绑定IP和主机名要在每台机器上提前执行 一 创建目录:/tmp/k8s_install,编写脚本,为了降低耦合性及提高维护性,共创建以下几个脚本 k8s_cluster_install.sh #!/bin/bash #关闭防火墙 systemctl stop firewalld systemctl disable firewalld #关闭selinux sed -i 's/enforcing/disabled/' /etc/selinux/conf

wujianqinjian 961
上一篇: linux journalctl使用详解
下一篇: k8s集群namespace和context使用
思维的深度
博客等级 码龄11年 2万+粉丝 391原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值