做二手衣服的网站有哪些,品牌营销论文框架,免费推广平台有哪些,wordpress 手动下一页作者#xff1a;杨紫熹原文链接#xff1a;https://fs.tn/post/PmaL-uIiQ/RKE全称为Rancher Kubernetes Engine#xff0c;是一款经过CNCF认证的开源Kubernetes发行版#xff0c;可以在Docker容器内部运行。它解决了Kubernetes社区中最常见的问题——安装十分复杂。借助RKE… 作者杨紫熹原文链接https://fs.tn/post/PmaL-uIiQ/RKE全称为Rancher Kubernetes Engine是一款经过CNCF认证的开源Kubernetes发行版可以在Docker容器内部运行。它解决了Kubernetes社区中最常见的问题——安装十分复杂。借助RKE可以简化Kubernetes的安装和操作并且用户可以在任何操作系统和平台上运行它。安装RKE首先需要下载RKE这个工具下载地址为https://github.com/rancher/rke/releases根据自己的平台下载对应的可执行文件下面我以ubuntu来做演示说明。下载rke_linux_amd64chmod x rke_linux_amd64赋予可执行权限改名为rkemv rke_linux_amd64 rke放入bin目录(可选)以上三步就安装好了RKEmac可以直接用brew安装命令为brew install rke部署Kubernetes集群生成集群配置文件安装好了RKE之后首先生成RKE的配置文件。使用自带命令rke config生成cluster.yml配置文件生成之后默认会有一个示例的配置文件。文件中的controlplane 就是k8s中所说的master。下面来看下这个配置文件(已经经过修改的版本)。我们以3主3etcd3work这种经典k8s集群模式来讲解下配置文件改如何写。请仔细阅读对于部署k8s有以下几点需要注意的。账户不能用root账户所有节点的时间必须同步使用的非root账户要能正常使用docker配置建议再2C4G以上推荐是4C8G比较合适磁盘40Gnodes: - address: 192.168.1.1 port: 22 # ssh 端口 internal_address: # 内网IP如果是公有云的这种有公私网两个IP的则address配置为公网IP role: - controlplane # 控制节点校色等于k8s的master - etcd user: ubuntu # 服务器登陆账户 hostname_override: master-etcd-01 docker_socket: /var/run/docker.sock # docker sock所在路径如果是用snap安装的dockers需要自行修改 ssh_key_path: ~/.ssh/id_rsa # ssh key的路径必须是免密登录不能使用账户密码 labels: {} # 标签说明 - address: 192.168.1.2 port: 22 internal_address: role: - controlplane - etcd user: ubuntu hostname_override: master-etcd-02 docker_socket: /var/run/docker.sock ssh_key_path: ~/.ssh/id_rsa - address: 192.168.1.3 port: 22 internal_address: role: - controlplane - etcd user: ubuntu hostname_override: master-etcd-03 docker_socket: /var/run/docker.sock ssh_key_path: ~/.ssh/id_rsa - address: 192.168.1.4 port: 22 internal_address: role: - worker user: ubuntu hostname_override: worker-1 docker_socket: /var/run/docker.sock ssh_key_path: ~/.ssh/id_rsa labels: app: ingress # 标记后只有该标记节点会部署ingress - address: 192.168.1.6 port: 22 internal_address: role: - worker user: ubuntu hostname_override: worker-2 docker_socket: /var/run/docker.sock ssh_key_path: ~/.ssh/id_rsa labels: app: ingress - address: 192.168.1.7 port: 22 internal_address: role: - worker user: ubuntu hostname_override: worker-3 docker_socket: /var/run/docker.sock ssh_key_path: ~/.ssh/id_rsa labels: app: ingressservices:# ETCD相关配置另外备份是可以备份到s3的这个配置见官方文档 etcd: extra_args: auto-compaction-retention: 240 #(单位小时) # 修改空间配额为$((6*1024*1024*1024))默认2G,最大8G quota-backend-bytes: 6442450944 backup_config: enabled: true interval_hours: 12 retention: 6 kube-api: service_cluster_ip_range: 10.43.0.0/16 service_node_port_range: 20000-40000 pod_security_policy: false always_pull_images: false# 控制器的一些配置比如节点判断失联后多久开始迁移等 kube-controller: extra_args: ## 当节点通信失败后再等一段时间kubernetes判定节点为notready状态。 ## 这个时间段必须是kubelet的nodeStatusUpdateFrequency(默认10s)的整数倍 ## 其中N表示允许kubelet同步节点状态的重试次数默认40s。 node-monitor-grace-period: 20s ## 再持续通信失败一段时间后kubernetes判定节点为unhealthy状态默认1m0s。 node-startup-grace-period: 30s ## 再持续失联一段时间kubernetes开始迁移失联节点的Pod默认5m0s。 pod-eviction-timeout: 1m cluster_cidr: 10.42.0.0/16 service_cluster_ip_range: 10.43.0.0/16# 集群的一些配置包括资源预留集群名字dns等配置 kubelet: extra_args: serialize-image-pulls: false registry-burst: 10 registry-qps: 0 # # 节点资源预留 # enforce-node-allocatable: pods # system-reserved: cpu0.5,memory500Mi # kube-reserved: cpu0.5,memory1500Mi # # POD驱逐这个参数只支持内存和磁盘。 # ## 硬驱逐伐值 # ### 当节点上的可用资源降至保留值以下时就会触发强制驱逐。强制驱逐会强制kill掉POD不会等POD自动退出。 # eviction-hard: memory.available300Mi,nodefs.available10%,imagefs.available15%,nodefs.inodesFree5% # ## 软驱逐伐值 # ### 以下四个参数配套使用当节点上的可用资源少于这个值时但大于硬驱逐伐值时候会等待eviction-soft-grace-period设置的时长 # ### 等待中每10s检查一次当最后一次检查还触发了软驱逐伐值就会开始驱逐驱逐不会直接Kill POD先发送停止信号给POD然后等待eviction-max-pod-grace-period设置的时长 # ### 在eviction-max-pod-grace-period时长之后如果POD还未退出则发送强制kill POD # eviction-soft: memory.available500Mi,nodefs.available50%,imagefs.available50%,nodefs.inodesFree10% # eviction-soft-grace-period: memory.available1m30s # eviction-max-pod-grace-period: 30 # eviction-pressure-transition-period: 30s cluster_domain: cluster.local infra_container_image: cluster_dns_server: 10.43.0.10 fail_swap_on: false kubeproxy: extra_args: # 默认使用iptables进行数据转发如果要启用ipvs则此处设置为ipvs proxy-mode: ipvs# 配置集群的CNI网络模型network: plugin: canal options: flannel_backend_type: vxlanssh_key_path: ~/.ssh/id_rsassh_agent_auth: falseauthorization: mode: rbacignore_docker_version: false# k8s的版本可以通过rke config --system-images --all 命令列出所有rke支持的版本kubernetes_version: v1.15.4-rancher1-2# 国内使用阿里云的镜像private_registries: - url: registry.cn-shanghai.aliyuncs.com user: password: is_default: true# 配置ingress目前RKE支持nginx。ingress: provider: nginx # 节点选择和上面node配置结合的 node_selector: app: ingress options: use-forwarded-headers: truecluster_name: rancheraddon_job_timeout: 0restore: restore: false snapshot_name: 大部分的配置都注释说明了基本上需要用到的配置就这些了更详细的配置需要查阅官方文档。文档链接https://docs.rancher.cn/rke/example-yamls.html开始部署配置完毕之后就是开始部署了rke的启动非常简单在配置文件目录使用./rke up就可以了。启动完毕之后等待大约10分钟左右会提示Finished building Kubernetes cluster successfully部署的过程中日志可能会显示WARN的提示这个是没有关系的。只要不出现ERR即可。可能会出现的错误etcd健康检查不通过出现证书错误的情况这个报错一般是因为时间不同步导致的。无法访问到node这个报错一般是因为地址配置出错Failed to set up SSH tunneling for host这个报错一般是使用了root用户或者docker sock配置错误Failed to dial ssh using addressssh-key配置错误部署成功之后有三个文件需要特别保存。cluster.ymlRKE集群配置文件。kube_config_cluster.yml集群的Kubeconfig文件此文件包含完全访问集群的凭据。cluster.rkestateKubernetes集群状态文件此文件包含访问集群的重要凭据。有了以上三个文件就可以对集群做新增、删除节点、升级集群版本的操作所以必须要保存好。部署Helm创建helm权限运行下面命令创建好helm的权限kubectl --kubeconfigkube_config_cluster.yml -n kube-system create serviceaccount tillerkubectl --kubeconfigkube_config_cluster.yml create clusterrolebinding tiller \--clusterrole cluster-admin --serviceaccountkube-system:tiller初始化helm这里首先在自己的机子上装好helm怎么装这里不再多说了可以自行百度或者Google。安装好了之后可以直接运行helm init --kubeconfigkube_config_cluster.yml来初始化。但是这里有有一个问题可能会有镜像拉不下来的情况。所以推荐使用下面的命令来初始化。helm init --kubeconfigkube_config_cluster.yml \--service-account tiller --skip-refresh \--tiller-image registry.cn-shanghai.aliyuncs.com/rancher/tiller:v2.14.1里面的镜像是Rancher给的镜像地址。当然也可以换成自己的。运行完命令之后可以通过kubectl看一看tiller是否正常启动了。更新helm更新就直接使用kubectl的命令升级镜像版本即可。命令如下(版本号可能和最新的不一样请不要直接使用)kubectl --kubeconfigkube_config_cluster.yml --namespacekube-system \ set image deployments/tiller-deploy \ tillerregistry.cn-shanghai.aliyuncs.com/rancher/tiller:v3.0.1添加Rancher的charts添加Rancher的stable版本chartshelm repo add rancher-stable \https://releases.rancher.com/server-charts/stable --kubeconfigkube_config_cluster.yml安装Rancher我这里使用的是外部负载均衡的模式就是在k8s之外还有一个nginx作为入口负载均衡同时ssl也截至到这个nginx。所以下面的配置中加上了--set tlsexternal。如果你是直接使用集群作为入口的则不需要这个参数需要自己配置ssl证书。具体参考官网。helm --kubeconfigkube_config_cluster.yml install rancher-stable/rancher \ --name rancher --namespace cattle-system \ --set hostnamerancher.asoco.com.cn \ --set tlsexternal到此实际上整个集群和Rancher都已经部署好了。接下来需要配置外部的nginx负载均衡器。外部负载均衡器nginx的配置nginx的配置我直接贴出来# zip压缩相关的配置gzip on;gzip_disable msie6;gzip_disable MSIE [1-6]\.(?!.*SV1);gzip_vary on;gzip_static on;gzip_proxied any;gzip_min_length 0;gzip_comp_level 8;gzip_buffers 16 8k;gzip_http_version 1.1;gzip_types text/xml application/xml application/atomxml application/rssxml application/xhtmlxml image/svgxml application/font-woff text/javascript application/javascript application/x-javascript text/x-json application/json application/x-web-app-manifestjson text/css text/plain text/x-component font/opentype application/x-font-ttf application/vnd.ms-fontobject font/woff2 image/x-icon image/png image/jpeg;# 这里配置为配置了ingress的work节点 upstream rancher { server 192.168.1.5:80; server 192.168.1.6:80; server 192.168.1.7:80;}map $http_upgrade $connection_upgrade { default Upgrade; close;}server { listen 443 ssl ; #配置域名 server_name rancher..com.cn; #配置证书 ssl_certificate /etc/nginx/rancher.com.cn.sslkey/fullchain.pem; ssl_certificate_key /etc/nginx/rancher.com.cn.sslkey/privkey.pem; location / { proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Forwarded-Port $server_port; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://rancher; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; # This allows the ability for the execute shell window to remain open for up to 15 minutes. ## Without this parameter, the default is 1 minute and will automatically close. proxy_read_timeout 900s; proxy_buffering off; }}# 配置301重定向server { listen 80; server_name rancher.com.cn; return 301 https://$server_name$request_uri;}将以上配置新增一个rancher.conf配置文件然后放到/etc/nginx/conf.d/文件夹中然后nginx重载配置即可。总 结在上面步骤都做完之后访问域名即可打开Rancher并且Rancher已经默认接管集群了开始享有Rancher的便捷吧。推荐阅读超长干货丨Kubernetes网络快速入门完全指南独家K8S安全成头等大事2019年K8S漏洞盘点与解读服务网格数据平面的关键层层剖析Envoy配置Rancher年终招聘啦北京、上海、深圳、沈阳四地火热招聘中快来加入我们解决方案架构师、测试、Golang工程师等众多岗位等你来投还有更多岗位详情戳文看咯简历投递地址chinajobsrancher.comAbout Rancher LabsRancher Labs由CloudStack之父梁胜创建。旗舰产品Rancher是一个开源的企业级Kubernetes管理平台实现了Kubernetes集群在混合云本地数据中心的集中部署与管理。Rancher一向因操作体验的直观、极简备受用户青睐被Forrester评为2018年全球容器管理平台领导厂商被Gartner评为2017年全球最酷的云基础设施供应商。目前Rancher在全球拥有超过一亿的下载量并拥有包括中国人寿、华为、中国平安、兴业银行、民生银行、平安证券、海航科技、厦门航空、上汽集团、海尔、米其林、丰田、本田、中船重工、中联重科、迪斯尼、IBM、Cisco、Nvidia、辉瑞制药、西门子、CCTV、中国联通等全球著名企业在内的共27000家企业客户。点击阅读原文投递简历↓↓↓