Kube

【05】Kubernets:资源清单(控制器

非 Y 不嫁゛ 提交于 2021-02-12 18:54:07
写在前面的话 从上一章节开始,我们一直在学习关于自主式 Pod 的资源清单编写, 但是自主式 Pod 存在着一个问题,就是和我们直接 docker run 运行 docker 容器一样。如果我们想以集群的形式并配合复杂的处理逻辑就不那么好用了。 针对这点,我们将 Pod 的处理交给了控制器。 关于控制器 再详细讲解控制器怎么使用之前,我们得知道控制器是啥,以及我们需要使用哪些。 在讲解 K8S 的 Master 组成的时候说过,Master 节点有个重要组件叫做 Controller Manager。 Controller Manager 由 kube-controller-manager 和 cloud-controller-manager 组成,是 K8S 的核心。 Cloud controller 一般在配合云服务的时候再使用,所以不是我们关心得重点。 kube-controller-manager 由以下主要的控制器组成: 1. Replication Controller(已经废弃) 2. Replicaset 3. Deployment Controller 4. DaemonSet Controller 5. Job / CronJob Controller 6. Volume Controller 7. StatefulSet Controller 8. Node

kubeadm安装kubernets集群

佐手、 提交于 2021-02-12 13:04:17
双12弄了两台腾讯云和百度云机器,组建k8s集群时需要服务器间组成内网环境; 在服务器组成内网后就可以安装kubernets集群了 因只是自己实验需要,所以服务器使用openxxx跨云组建的内网,各位在安装的时候建议还是使用同一内网环境,并使用2v4G以上服务器推介配置 大家的系统环境及各种安装包尽量使用同一个版本 备注:因为我的内网环境和普通的略有不通,所以初始化集群的时候及安装网络插件的时候,需要额外的操作,强烈建议大家即使是实验也请组成二层的内网网络环境来搭建K8S, 1,服务器环境: 软件版本 Kubernetes v1.17.0 Docker version 19.03.5   master:     腾讯云1V2g,CentOS Linux release 7.5.1804 (Core)     公网IP:x.x.x.x     内网IP:172.16.10.9     局域网IP:100.100.100.1     hostname:shiji.com   node1:     百度云1v2g,CentOS Linux release 7.6.1810 (Core)         公网IP:x.x.x.x     内网IP:172.16.0.4     局域网IP:100.100.100.3     hostname:node1 2

【02】Kubernets:使用 kubeadm 部署 K8S 集群

你。 提交于 2021-02-11 20:39:33
写在前面的话 通过上一节,知道了 K8S 有 Master / Node 组成,但是具体怎么个组成法,就是这一节具体谈的内容。概念性的东西我们会尽量以实验的形式将其复现。 部署 K8S 集群 互联网常用的 K8S 集群部署方式: 1. kubeadm(我们本次用到的) 2. rancher 3. 云服务商提供的(如阿里云提供的 K8S) 4. yum 安装(版本有点低,不推荐) 准备: IP 主机名 角色 安装 192.168.100.101 node1 Master kubeadm/kubelet/kubectl/docker-ce/flannel 192.168.100.102 node2 Node kubeadm/kubelet/kubectl/docker-ce/flannel 192.168.100.103 node3 Node kubeadm/kubelet/kubectl/docker-ce/flannel 准备 3 台初始化的机器,内存大于 2G。 至于 kubeadm 文档如下,感兴趣的可以去看看: https://github.com/kubernetes/kubeadm/blob/master/docs/design/design_v1.10.md 【1】所有节点初始化操作: # 配置主机名解析 echo " 192.168.100.101 node1 " >

k8s部署02-----kubeadm部署k8s

元气小坏坏 提交于 2021-02-11 20:30:00
机器规划 系统配置 三台机器都执行 1、关闭selinux及firewalld sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config setenforce 0 systemctl stop firewalld && systemctl disable firewalld 2、内核参数调整 cat <<EOF > /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sysctl --system 3、关闭swap swapoff -a 为了防止开机自动挂载 swap 分区,可以注释 /etc/fstab 中相应的条目: sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab 注: k8s 版本1.8开始要求关闭系统的swap,否则启动不了kubelet; 安装docker 三台都执行 docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE; 比如: 18.06 为18年6月份发布的版本; 1、下载安装 docker-ce wget -c https://download

kubeadm部署k8s

本小妞迷上赌 提交于 2021-02-11 19:31:13
k8s搭建 1.集群环境 hostname IP remark os k8s-master 172.19.100.210 docker、kubectl、kubelet、kubeadm、flannel centos7.* k8s-node1 172.19.100.211 docker、kubectl、kubelet、kubeadm centos7.* k8s-node2 172.19.100.212 docker、kubectl、kubelet、kubeadm centos7.* 2.软件版本 1. k8s=v1.12.3 2. flannel=v0.10.0-amd64 3.环境准备 3.1设置主机名称 hostnamectl set-hostname k8s-master hostnamectl set-hostname k8s-node1 hostnamectl set-hostname k8s-node2 3.2配置主机映射 172.19.100.210 k8s-master 172.19.100.211 k8s-node1 172.19.100.212 k8s-node2 3.3关闭防火墙 systemctl stop firewalld systemctl disable firewalld 3.4关闭selinux setenforce 0 sed -i "s/

kubeadm 创建的 k8s 集群的升级

假装没事ソ 提交于 2021-02-11 18:53:19
更好的阅读体验建议点击下方原文链接。 原文地址: http://maoqide.live/post/cloud/build-docker-image-in-a-pod-in-kubernetes 升级 kubeadm 部署的 kubernetes 集群。 <!--more--> 当前环境 [root@centos10 ~]$ uname -a Linux centos10 3.10.0-957.27.2.el7.x86_64 #1 SMP Mon Jul 29 17:46:05 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux [root@centos10 ~]$ kubectl version Client Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.10", GitCommit:"7a578febe155a7366767abce40d8a16795a96371", GitTreeState:"clean", BuildDate:"2019-05-01T04:14:38Z", GoVersion:"go1.10.8", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1

使用 Kubeadm 升级 Kubernetes 版本

做~自己de王妃 提交于 2021-02-11 16:00:23
升级最新版 kubelet kubeadm kubectl ( 阿里云镜像 ) cat <<EOF > /etc/ yum .repos.d/ kubernetes.repo [kubernetes] name = Kubernetes baseurl =https: // mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled= 1 gpgcheck = 1 repo_gpgcheck = 1 gpgkey =https: // mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF setenforce 0 yum install - y kubelet kubeadm kubectl systemctl enable kubelet && systemctl start kubelet 查看此版本的容器镜像版本 $ kubeadm config images list k8s.gcr.io /kube-apiserver:v1. 12.2 k8s.gcr.io /kube-controller-manager

kubernetes RBAC

南楼画角 提交于 2021-02-10 17:45:53
Role: kind : Role apiVersion : rbac.authorization.k8s.io/v1 metadata : namespace : gauss name : gauss-op rules : - apiGroups : [ "*" ] resources : [ "*" ] verbs : [ "*" ] RoleBinding: kind : RoleBinding apiVersion : rbac.authorization.k8s.io/v1 metadata : name : bach-gauss-rb namespace : gauss subjects : - kind : ServiceAccount name : bach-gauss roleRef : kind : Role name : gauss-op apiGroup : rbac.authorization.k8s.io ClusterRole: apiVersion : rbac.authorization.k8s.io/v1alpha1 kind : ClusterRole metadata : name : cluster-read-all rules : - apiGroups : - "" - apps - autoscaling - batch -

《Kubernetes权威指南》基本概念

不打扰是莪最后的温柔 提交于 2021-02-09 09:58:03
一 、基本概念 kubernetes 中的 Node 、 Pod 、 Replication Controller 、 Service 等都是一种“资源对象”,基本都可以通过 kubectl 或者通过API编程调用,执行增删改查操作都保存在ETCD中持久化存储 1.1 Master 作用:每个k8s集群都需要一个mater节点来管理,master一般是单独部署 核心组件: Kubernetes API Server(kube-apiserver),提供HTTP REST 接口的关键服务进程,是k8s里所有资源增删改查 等操作的唯一入口 Kubernetes Controller Manager (kube-controller-manager),k8s所有资源的自动化控制中心。 Kubernetes Scheduler(kube-scheduler),调度(POD)的进程。 ETCD,master节点一般还启动一个ETCD Server进程,所有资源对象的数据全部保存在ETCD中 1.2 Node 除了Master,k8s集群的其他节点都称为Node节点,Node节点是k8s集群中的工作负载节点,当某个Node宕机,骑上的工作负载会被master自动转移到其他节点上 核心组件: kubelet:负责Pod对象的容器创建、启停等任务,同时与Master节点密切协作 kube

容器 coredns 问题排查整理

爷,独闯天下 提交于 2021-02-08 06:40:16
1.问题描述 客户侧在变更容器安全组之后出现网络不通。 2.问题排查 1)接到客户反馈 Kubernetes 托管版集群出现网络问题,电话沟通后授权进行查看:Pod 网络通畅,域名解析出现异常;(ping IP 可通,但ping域名不通) 2)结合客户操作,怀疑与安全组配置有关,尝试进一步排查安全组问题。详细排查无问题后,决定重启 coredns POD。重启后 coredns POD 漂移到其它 ECS上,集群中大部分主机恢复正常; 3)确认coredns原宿主机存在网络连接问题,将该主机踢出集群后,集群恢复正常; 4)经过环境测试后最终定位原因在于客户侧误解 Kubernetes 集群安全组页面“解绑实例”功能为解绑安全组,导致误操作解绑和绑定ENI 网卡,同时产品健康检查机制存在缺陷,无法探测到辅助网卡的链路问题,导致问题无法快速发现并解决,最终导致客户集群网络无法联通。 3.优化改进 1)优化安全组页面存在“解绑实例”功能文案,同时增加由 Kubernetes 集群创建的网卡在用户解绑时的风险提示,避免客户误操作引发业务中断; 2)优化健康检查机制,确保辅助网卡链路异常场景能够被快速发现。 4.问题复现 4.1 环境准备 1)kubernetes托管版集群,网络模式为Terway,kube-proxy代理模式为IPVS,四节点,需要创建测试的应用pod; 图1:初始环境 2