k8s

K8S配置中的port、targetPort、nodePort和containerPort区别

大憨熊 提交于 2020-03-31 16:07:46
声明 本文转载于 k8s配置中的port、targetPort、nodePort和containerPort区别 port port是k8s集群内部访问service的端口,即通过clusterIP: port可以访问到某个service nodePort nodePort是外部访问k8s集群中service的端口,通过nodeIP: nodePort可以从外部访问到某个service。 targetPort targetPort是pod的端口,从port和nodePort来的流量经过kube-proxy流入到后端pod的targetPort上,最后进入容器。 containerPort containerPort是pod内部容器的端口,targetPort映射到containerPort。 图解 来源: 51CTO 作者: 品鉴初心 链接: https://blog.51cto.com/wutengfei/2482187

k8s高可用二进制部署使用Calico网络方案

好久不见. 提交于 2020-03-31 10:28:07
服务器规划 192.168.30.24 k8s-master1 192.168.30.25 k8s-master2 192.168.30.26 k8s-node1 192.168.30.30 k8s-node2 192.168.30.31 k8s-node3 192.168.30.32 k8s-slb1 192.168.30.33 k8s-slb2 生产环境高可用集群 规格:配置3/5/7个master, 3/5/7etcd集群,3/5/7个nginx对api做负载均衡,1个slb充当HA来访问k8s的API 参考阿里云配置: 节点规模 Master规格 1-5个节点 4C8G(不建议2C4G) 6-20个节点 4C16G 21-100个节点 8C32G 100-200个节点 16C64G 具体部署步骤 一、系统初始化 二、颁发ETCD证书 三、部署ETCD集群 四、颁发K8S相关证书 五、部署Master组件 六、部署Node组件 七、部署CNI插件(Calico插件) 八、部署Coredns插件 九、扩容Node节点 十、缩容Node节点 十一、部署高可用HA 一、系统初始化 关闭防火墙: # systemctl stop firewalld # systemctl disable firewalld 关闭selinux: # setenforce 0 # 临时 # sed

k8s中的pod控制器之Deployment、DaemonSet、StatefulSet

爱⌒轻易说出口 提交于 2020-03-31 03:48:37
pod控制器分类: 1、ReplicationController 2、ReplicaSet 3、Deployment 4、StatefulSet 5、DaemonSet 6、Job,Cronjob 7、HPA pod控制器:一般包括3部分 1、标签选择器 2、期望的副本数(DaemonSet控制器不需要) 3、pod模板 deploy控制器构建于rs控制器之上,新特性包括: 1、事件和状态查看 2、回滚 3、版本记录 4、暂停和启动 5、支持两种自动更新方案 Recreate删除重建 RollingUpdate回滚升级(默认方式) 创建deploy $ kubectl run --help $ kubectl run nginx --image=nginx --port=80 --replicas=2 #用命令直接创建 $ kubectl run nginx --image=nginx --port=80 --dry-run -o yaml apiVersion: apps/v1 kind: Deployment metadata: labels: run: nginx name: nginx spec: replicas: 1 selector: matchLabels: run: nginx template: metadata: labels: run: nginx

K8S 之概念DaemonSet 对象

心不动则不痛 提交于 2020-03-31 03:48:17
什么是 DaemonSet? 编写 DaemonSet 规约 必需字段 Pod 模板 Pod Selector 仅在某些节点上运行 Pod 如何调度 Daemon Pod 与 Daemon Pod 通信 更新 DaemonSet DaemonSet 的可替代选择 init 脚本 裸 Pod 静态 Pod Replication Controller 什么是 DaemonSet? DaemonSet 确保全部(或者某些)节点上运行一个 Pod 的副本。当有节点加入集群时,也会为他们新增一个 Pod 。 当有节点从集群移除时,这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod。 使用 DaemonSet 的一些典型用法: 运行集群存储 daemon,例如在每个节点上运行 glusterd、ceph。 在每个节点上运行日志收集 daemon,例如fluentd、logstash。 在每个节点上运行监控 daemon,例如 Prometheus Node Exporter、collectd、Datadog 代理、New Relic 代理,或 Ganglia gmond。 一个简单的用法是在所有的节点上都启动一个 DaemonSet,将被作为每种类型的 daemon 使用。 一个稍微复杂的用法是单独对每种 daemon 类型使用多个 DaemonSet

k8s中postgres基于PITR备份还原

天涯浪子 提交于 2020-03-30 21:55:19
参考网站: postgres官网备份PITR文档 Postgresql 连续归档和时间点恢复(PITR) 1、在k8s创建postgres数据库 [用于创建postgres的yaml文件下载() 需要修改70-statefulsets-postgres.yaml文件中的数据持久化方式,即 storageClassName: 'nfs-client' #这里的nfs-client修改为自己k8s的持久化设备,这里使用的是已经搭建好的nfs服务 启动postgres数据库: wget xxxxxxx.xxxxxx #下载postgres数据库启动需要的yaml文件 kubectl create namespace postgres #创建一个名叫postgres的namespace kubens postgres #进入这个namespace,kubens工具的作用是切换namespace需要去gitghub搜索kubectx工具,二进制安装即可使用 kubectl apply -f postgres/*.yaml #启动postgres数据库,所有动作在postgres这个namespace完成 在postgres文件的配置文件中要打开的内容: vim postgresql.conf wal_level='hot_standby' #wal_level至少设置为replica

【k8s】使用helm安装nfs服务

我只是一个虾纸丫 提交于 2020-03-30 21:55:07
参考网站: [NFS动态存储卷]( https://choerodon.io/zh/docs/installation-configuration/steps/nfs/ [Centos7挂载NFS内容]( https://blog.csdn.net/wenfeifang/article/details/83029067 ) 在k8s中,对数据持久化的需求不少,我们可以使用nfs服务,搭建一个nfs的本地存储服务,并在k8s上搭建客户端,分配给需要持久化数据的应用。 1、服务规划 服务器 系统 IP 作用 nfs服务端 centos7 192.168.2.13 nfs存储服务器 k8s控制服务器 centos7 192.168.2.12 能使用kubectl控制k8s集群的 2、安装nfs存储服务 在集群的每个服务器安装nfs-utils(192.168.2.13;192.168.2.12) sudo yum install -y nfs-utils 3、配置nfs-server 在nfs服务端(192.168.2.13),创建共享目录: mkdir /nfs_data 编辑/etc/exports文件添加需要共享目录,每个目录的设置独占一行,编写 /nfs_data 192.168.0.0/16(rw,sync,insecure,no_subtree_check,no_root

K8s在LinuxONE上搭建 基于RHEL7 操作系统(一)

余生颓废 提交于 2020-03-30 16:45:16
一、介绍 Kubernetes 是当前炙手可热的技术,它已然成为可开源界的PASS管理平台的标准,当下文章对大多数是对X86平台搭建Kubernetes平台,下面笔者进行在LinuxONE上搭建开源的Kubernetes平台。 搭建K8S 平台主流的有两种方法, 第一种是基于二进制的搭建,通过一步一步的搭建可以加深对K8S各个服务的理解。 官方推荐的自动化部署工具 kubeadm 本次使用官方推荐的Kubeadm 的搭建方法, kubedm 把K8S 自身的服务都被K8S自身的pod,除此之外事先的基础服务是用system服务的方式运行。 master节点安装组件: docker、kubelet、kubeadm 基于本地的system服务运行 kube-proxy 是 动态的可被k8s 管理的pod api-server、kube-controller、etcd、 是托guan在pod node节点组件 docker、kubelet 基于本地的system服务运行 kube-proxy 是 动态的可被k8s 管理的pod flannel 是 动态的可被k8s 管理的pod 二、安装 1. 环境 安装的环境可以使用虚拟机也可以使用Lpar,我这是使用的Openstack环境下面的虚拟机。虚拟机的规格为4C10G50G 系统版本 IP地址 主机名 K8s version Red Hat

云原生生态周报 Vol. 21 | Traefik 2.0 正式发布

妖精的绣舞 提交于 2020-03-30 14:41:11
作者 | 浔鸣、心水、元毅、源三、衷源 业界要闻 CNCF 计划将 TOC 升至 11 人 技术监督委员会(TOC)是 CNCF 的三大核心管理机构之一,从 2020 年 1 月起,TOC 将从 9 个成员扩展到 11 个,新增的两个职位分别负责最终用户和项目维护。 NASA 开发团队拥抱 K8s 出于对云原生、零信任和开源的严格要求,开发团队最后选择构建一个 Kubernetes 平台,以实现开发人员与非开发人员的轻松协作,无需借助任何复杂工具。 Traefik 2.0 正式发布 Træfik 是一个新型的 http 反向代理、负载均衡软件,能轻易的部署微服务。它支持多种后端 (Docker, Mesos/Marathon, Etcd, BoltDB...) ,可以对配置进行自动化、动态的管理。此次大版本的更新添加了许多功能,比如备受期待的支持 TCP 、使用中间件自定义路由、全新的 Dashboard、金丝雀发布、流量复制等。Traefik 2.0 有了这么多的新功能和增强功能,为了帮助用户可以从 1.x 版本过渡到新版本,官方提供了一个 迁移指南 。 Harbor 1.9 发布 在这个新版本中,增加了一些有趣的特性,比如允许系统管理员限制项目资源配额、可以自行定制 Tag 的保留策略、支持 Webhook 以便于和 CI/CD 集成、复制功能有所增强、安全漏洞白名单;

k8s运行DaemonSet控制器管理pod(8)

空扰寡人 提交于 2020-03-30 13:32:00
前面介绍了k8s的deployment和statefulset这两种控制器。 deployment是属于无状态的服务,nginx,Tomcat,没有关联的pod statefulset是属于有状态的服务。mysql,zk、etcd,集群形式的pod 下面我们来介绍一下第三种方式DaemonSet这种控制器模式 DaemonSet 的典型应用场景: 在集群的每个节点上运行存储 Daemon,比如:glusterd 或 ceph。 在每个节点上运行日志收集 Daemon,比如:flunentd 或 logstash。 在每个节点上运行监控 Daemon,比如:Prometheus Node Exporter 或 collectd。 DaemonSet 与 Deployment 的区别 Deployment 部署的副本 Pod 会分布在各个 Node 上,每个 Node 都可能运行好几个副本。 DaemonSet 的不同之处在于:每个 Node 上最多只能运行一个副本。 总结: DaemonSet这种控制器方式,主要是用来对node节点上面每个节点平均分配一个pod的,比如每个node节点上面运行的监控agent,或者是收集日志的agent。。。 -----------------------------------------------------------------------

07-3.部署 kube-proxy 组件

瘦欲@ 提交于 2020-03-29 17:09:58
07-3.部署 kube-proxy 组件 kube-proxy 运行在所有 worker 节点上,,它监听 apiserver 中 service 和 Endpoint 的变化情况,创建路由规则来进行服务负载均衡。 本文档讲解部署 kube-proxy 的部署,使用 ipvs 模式。 下载和分发 kube-proxy 二进制文件 参考 06-0.部署master节点.md 安装依赖包 各节点需要安装 ipvsadm 和 ipset 命令,加载 ip_vs 内核模块。 参考 07-0.部署worker节点.md 创建 kube-proxy 证书 创建证书签名请求: cat > kube-proxy-csr.json <<EOF { "CN": "system:kube-proxy", "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "ST": "BeiJing", "L": "BeiJing", "O": "k8s", "OU": "4Paradigm" } ] } EOF CN:指定该证书的 User 为 system:kube-proxy ; 预定义的 RoleBinding system:node-proxier 将User system:kube-proxy 与 Role system:node