当前位置: 首页 > news >正文

苏州建设局网站舆情报告撰写

苏州建设局网站,舆情报告撰写,济南做网站设计,电子商务网站建设与管理实验目的一、安装方式介绍 1、yum 安装 目前CentOS官方已经把Kubernetes源放入到自己的默认 extras 仓库里面#xff0c;使用 yum 安装#xff0c;好处是简单#xff0c;坏处也很明显#xff0c;需要官方更新 yum 源才能获得最新版本的软件#xff0c;而所有软件的依赖又不能自己指…一、安装方式介绍 1、yum 安装 目前CentOS官方已经把Kubernetes源放入到自己的默认 extras 仓库里面使用 yum 安装好处是简单坏处也很明显需要官方更新 yum 源才能获得最新版本的软件而所有软件的依赖又不能自己指定尤其是你的操作系统版本如果低的话使用 yum 源安装的 Kubernetes 的版本也会受到限制通常会低于官方很多版本我安装的时候目前官方版本为1.12而 yum 源中的版本为1.5.2。请查看博文https://blog.51cto.com/wzlinux/2321767 2、二进制安装 使用二进制文件安装好处是可以安装任意版本的 Kubernetes对一些新版本新功能追求的同学比较合适坏处是配置比较复杂很多软件包因为一些原因我们在大陆是访问不到的。 3、Kubeadm 安装 kubeadm 是 Kubernetes 官方提供的用于快速安装 Kubernetes 集群的工具伴随Kubernetes每个版本的发布都会同步更新kubeadm会对集群配置方面的一些实践做调整通过实验 kubeadm 可以学习到 Kubernetes 官方在集群配置上一些新的最佳实践。请查看博文https://blog.51cto.com/wzlinux/2322616 这里我们选用第二种方式安装。 二、环境准备 1、软件版本 我们安装的版本基本是目前最新的版本。 软件版本kubernetesv1.12.2CentOS 7.5CentOS Linux release 7.5.1804Dockerv18.06 这是官方推荐的etcd3.3.10flannel0.10.02、节点规划 IP角色安装软件172.18.8.200k8s masteretcdkube-apiserverkube-controller-managerkube-schedulerkubelet172.18.8.201k8s node01dockerkubeletkube-proxyflannel172.18.8.202k8s node02dockerkubeletkube-proxyflannel节点及网络规划如下 3、系统配置 关闭防火墙。 systemctl stop firewalld systemctl disable firewalld 配置/etc/hosts添加如下内容。 172.18.8.200 master.wzlinux.com master 172.18.8.201 node01.wzlinux.com node01 172.18.8.202 node02.wzlinux.com node02 关闭SELinux。 sed -i s#SELINUXenforcing#SELINUXdisabled#g /etc/selinux/config setenforce 0 关闭swap。 swapoff -a sed -i s/.*swap.*/#/ /etc/fstab 4、二进制软件包下载 我们可以下载编译好的二进制文件也可以下载源码自己编译这里只讨论二进制的安装方式。在Kubernetes的Github CHANGELOG日志中可以看到最新的版本号也可以到Tag页面中找到自己需要的版本我下载的是 v1.12.2。 上传我们下载的二进制软件包到各节点并解压在root家目录查看目录内容。 [rootmaster ~]# ll kubernetes/server/bin/ total 1821524 -rwxr-xr-x 1 root root 60859975 Oct 24 15:49 apiextensions-apiserver -rwxr-xr-x 1 root root 142923436 Oct 24 15:49 cloud-controller-manager -rw-r--r-- 1 root root 8 Oct 24 15:44 cloud-controller-manager.docker_tag -rw-r--r-- 1 root root 144309760 Oct 24 15:44 cloud-controller-manager.tar -rwxr-xr-x 1 root root 248021112 Oct 24 15:49 hyperkube -rwxr-xr-x 1 root root 54042644 Oct 24 15:49 kubeadm -rwxr-xr-x 1 root root 192781649 Oct 24 15:49 kube-apiserver -rw-r--r-- 1 root root 8 Oct 24 15:44 kube-apiserver.docker_tag -rw-r--r-- 1 root root 194167808 Oct 24 15:44 kube-apiserver.tar -rwxr-xr-x 1 root root 162961401 Oct 24 15:49 kube-controller-manager -rw-r--r-- 1 root root 8 Oct 24 15:44 kube-controller-manager.docker_tag -rw-r--r-- 1 root root 164347392 Oct 24 15:44 kube-controller-manager.tar -rwxr-xr-x 1 root root 57352138 Oct 24 15:49 kubectl -rwxr-xr-x 1 root root 176648680 Oct 24 15:49 kubelet -rwxr-xr-x 1 root root 50330867 Oct 24 15:49 kube-proxy -rw-r--r-- 1 root root 8 Oct 24 15:44 kube-proxy.docker_tag -rw-r--r-- 1 root root 98355200 Oct 24 15:44 kube-proxy.tar -rwxr-xr-x 1 root root 57184656 Oct 24 15:49 kube-scheduler -rw-r--r-- 1 root root 8 Oct 24 15:44 kube-scheduler.docker_tag -rw-r--r-- 1 root root 58570752 Oct 24 15:44 kube-scheduler.tar -rwxr-xr-x 1 root root 2330265 Oct 24 15:49 mounter 这些包都是存储在google的服务器上面因为众所周知的原因我们是无法访问的所以需要各位科学上网才可以获取不过我可以把我获取的包传到网盘分享给大家。大家可以去下载使用。链接: https://pan.baidu.com/s/1Ut9VERgm55B4lmz0wjjzFQ 提取码: mjem 三、安装master master节点需要安装的服务有kube-apiserverkube-controller-managerkube-scheduler所以我们先把需要的二进制文件放到环境变量。 cd /root/kubernetes/server/bin cp kube-apiserver kube-controller-manager kube-scheduler kubectl /usr/local/bin/ 创建需要的目录。 mkdir -p /var/lib/etcd mkdir -p /etc/etcd/ mkdir /etc/kubernetes 1、安装etcd 因为所以的组件都是需要etcd存储所以我们第一安装的就是etcd如果不是为了新版本为了方便可以使用yum安装。 我这里采用二进制安装方法首先下载安装包。 下载。 wget https://github.com/etcd-io/etcd/releases/download/v3.3.10/etcd-v3.3.10-linux-amd64.tar.gz 解压安装。 tar xf etcd-v3.3.10-linux-amd64.tar.gz cd etcd-v3.3.10-linux-amd64 cp etcd etcdctl /usr/local/bin/ 创建system启动文件etcd.service。 cat EOF /usr/lib/systemd/system/etcd.service [Unit] Descriptionetcd.service[Service] Typenotify TimeoutStartSec0 Restartalways WorkingDirectory/var/lib/etcd EnvironmentFile-/etc/etcd/etcd.conf ExecStart/usr/local/bin/etcd[Install] WantedBymulti-user.target EOF 创建配置文件。 cat EOF /etc/etcd/etcd.conf ETCD_NAMEETCD Server ETCD_DATA_DIR/var/lib/etcd/ ETCD_LISTEN_CLIENT_URLShttp://0.0.0.0:2379 ETCD_ADVERTISE_CLIENT_URLShttp://172.18.8.200:2379 EOF 启动etcd。 systemctl daemon-reload systemctl start etcd.service systemctl enable etcd.service 查看启动状态。 [rootmaster ~]# netstat -tlnp|grep etcd tcp 0 0 127.0.0.1:2380 0.0.0.0:* LISTEN 1550/etcd tcp6 0 0 :::2379 :::* LISTEN 1550/etcd [rootmaster ~]# etcdctl cluster-health member 8e9e05c52164694d is healthy: got healthy result from http://172.18.8.200:2379 cluster is healthy 说明 etcd 会启用两个端口其中2380 是集群的通信端口2379是服务端口。如果是配置etcd集群则要修改配置文件设置监听IP和端口。 2、安装 kube-apiserver 创建启动文件/usr/lib/systemd/system/kube-apiserver.service修改为如下内容 [Unit] DescriptionKubernetes API Server Documentationhttps://github.com/GoogleCloudPlatform/kubernetes Afternetwork.target Afteretcd.service[Service] EnvironmentFile/etc/kubernetes/apiserver ExecStart/usr/local/bin/kube-apiserver \$KUBE_ETCD_SERVERS \$KUBE_BIND_ADDRESS \$KUBE_API_PORT \$KUBE_SERVICE_ADDRESSES \$KUBE_ADMISSION_CONTROL \$KUBE_API_ARGS Restarton-failure Typenotify LimitNOFILE65536[Install] WantedBymulti-user.target 创建目录和配置文件。 cat EOF /etc/kubernetes/apiserver KUBE_BIND_ADDRESS--bind-address0.0.0.0 KUBE_API_PORT--port8080 KUBE_ETCD_SERVERS--etcd-servershttp://172.18.8.200:2379 KUBE_SERVICE_ADDRESSES--service-cluster-ip-range10.96.0.0/12 KUBE_ADMISSION_CONTROL--admission-controlNamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota KUBE_API_ARGS EOF 启动服务。 systemctl daemon-reload systemctl start kube-apiserver.service systemctl enable kube-apiserver.service 查看启动是否成功。 [rootmaster ~]# netstat -tnlp | grep kube tcp6 0 0 :::6443 :::* LISTEN 11086/kube-apiserve tcp6 0 0 :::8080 :::* LISTEN 11086/kube-apiserve kube-apiserver监听在两个端口6443是https加密通信方式8080是http的通信方式我们这里没有配置证书选项所以我们的通信都是明文通信官方文档查看。 3、安装kube-controller-manager 创建启动文件/usr/lib/systemd/system/kube-controller-manager.service添加如下内容 [Unit] DescriptionKubernetes Controller Manager Documentationhttps://github.com/GoogleCloudPlatform/kubernetes Afterkube-apiserver.service Requireskube-apiserver.service[Service] EnvironmentFile-/etc/kubernetes/controller-manager ExecStart/usr/local/bin/kube-controller-manager \$KUBE_MASTER \$KUBE_CONTROLLER_MANAGER_ARGS Restarton-failure LimitNOFILE65536[Install] WantedBymulti-user.target 创建配置文件controller-managerIP根据自己的实际情况进行修改。 cat EOF /etc/kubernetes/controller-manager KUBE_MASTER--masterhttp://172.18.8.200:8080 KUBE_CONTROLLER_MANAGER_ARGS EOF 启动服务。 systemctl daemon-reload systemctl start kube-controller-manager.service systemctl enable kube-controller-manager.service 验证服务状态。 [rootmaster ~]# netstat -lntp | grep kube-controll tcp6 0 0 :::10252 :::* LISTEN 11131/kube-controll tcp6 0 0 :::10257 :::* LISTEN 11131/kube-controll 端口10257为https提供身份验证和授权10252为默认非加密端口官方文档查看。 4、安装kube-scheduler 创建启动文件/usr/lib/systemd/system/kube-scheduler.service添加如下内容 [Unit] DescriptionKubernetes Scheduler Plugin Documentationhttps://github.com/GoogleCloudPlatform/kubernetes Afterkube-apiserver.service Requireskube-apiserver.service[Service] EnvironmentFile/etc/kubernetes/scheduler ExecStart/usr/local/bin/kube-scheduler \$KUBE_MASTER \$KUBE_SCHEDULER_ARGS Restarton-failure LimitNOFILE65536[Install] WantedBymulti-user.target 创建配置文件/etc/kubernetes/scheduler。 cat EOF /etc/kubernetes/scheduler KUBE_MASTER--masterhttp://172.18.8.200:8080 KUBE_SCHEDULER_ARGS EOF 启动服务。 systemctl daemon-reload systemctl start kube-scheduler.service systemctl enable kube-scheduler.service 验证服务状态。 [rootmaster ~]# netstat -lntp | grep kube-schedule tcp6 0 0 :::10251 :::* LISTEN 11178/kube-schedule 端口10251是非加密端口https端口为10259。官方文件查看。 使用 kubectl 查看状态。 [rootmaster ~]# kubectl get cs NAME STATUS MESSAGE ERROR etcd-0 Healthy {health:true} controller-manager Healthy ok scheduler Healthy ok 四、安装node节点(node01为例) 1、环境准备 node节点需要安装的服务有dockerkubeletkube-proxflannel所以我们先把需要的二进制文件放到环境变量。 cd /root/kubernetes/server/bin/ cp kubelet kube-proxy /usr/local/bin/ 加载ipvs内核使node节点kube-proxy支持ipvs代理规则。 modprobe ip_vs_rr modprobe ip_vs_wrr modprobe ip_vs_sh 创建需要的目录。 mkdir /var/lib/kubelet mkdir /etc/kubernetes 配置转发参数。 cat EOF /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables 1 net.bridge.bridge-nf-call-iptables 1 EOF sysctl --system 2、安装docker-ce 我们使用推荐的版本18.06此时docker官方的最新版本为18.09所以我们需要配置官方yum源。 wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -P /etc/yum.repos.d/ yum list docker-ce.x86_64 --showduplicates |sort -r yum install docker-ce-18.06.1.ce -y 配置加速器。 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json -EOF {registry-mirrors: [https://hdi5v8p1.mirror.aliyuncs.com] } EOF 2、安装 kube-proxy 服务 创建启动文件/usr/lib/systemd/system/kube-proxy.service添加如下内容 [Unit] DescriptionKubernetes Kube-Proxy Server Documentationhttps://github.com/GoogleCloudPlatform/kubernetes Afternetwork.target[Service] EnvironmentFile/etc/kubernetes/proxy ExecStart/usr/local/bin/kube-proxy \$KUBE_MASTER \$KUBE_PROXY_ARGS Restarton-failure LimitNOFILE65536[Install] WantedBymulti-user.target 创建需要的配置文件IP请根据自己的实际情况进行修改。 cat EOF /etc/kubernetes/proxy KUBE_MASTER--masterhttp://172.18.8.200:8080 KUBE_PROXY_ARGS EOF 启动服务。 systemctl daemon-reload systemctl start kube-proxy.service systemctl enable kube-proxy.service 查看启动状态。 [rootnode01 ~]# netstat -lntp | grep kube-proxy tcp 0 0 127.0.0.1:10249 0.0.0.0:* LISTEN 12273/kube-proxy tcp6 0 0 :::10256 :::* LISTEN 12273/kube-proxy 端口10256负责健康检查10249负责和server通信官方文档查看。 3、安装 kubelete 服务 创建启动文件/usr/lib/systemd/system/kubelet.service新增如下内容 [Unit] DescriptionKubernetes Kubelet Server Documentationhttps://github.com/GoogleCloudPlatform/kubernetes Afterdocker.service Requiresdocker.service[Service] WorkingDirectory/var/lib/kubelet ExecStart/usr/local/bin/kubelet --kubeconfig/etc/kubernetes/kubeconfig.yaml Restarton-failure[Install] WantedBymulti-user.target 创建配置文件kubeconfig.yaml具体参数请根据自己的需求进行修改新增如下内容 cat EOF /etc/kubernetes/kubeconfig.yaml apiVersion: v1 kind: Configusers: - name: kubeletclusters: - name: kubernetescluster: server: http://172.18.8.200:8080contexts: - context:cluster: kubernetesuser: kubeletname: service-account-context current-context: service-account-context EOF kubeconfig官方文档请点击查看。 启动kubelet。 systemctl daemon-reload systemctl start kubelet.service systemctl enable kubelet.service 查看启动情况。 [rootnode01 ~]# netstat -tnlp | grep kubelet tcp 0 0 127.0.0.1:43228 0.0.0.0:* LISTEN 12658/kubelet tcp 0 0 127.0.0.1:10248 0.0.0.0:* LISTEN 12658/kubelet tcp6 0 0 :::10250 :::* LISTEN 12658/kubelet tcp6 0 0 :::10255 :::* LISTEN 12658/kubelet 配置官方文档请查看。 4、配置flannel网络(Pod使用) 我们之所以要单独使用第三方的网络插件来扩展k8s,主要原因是在使用docker的环境中在每个node节点的docker0默认的网段都是172.17.0.0/16的网络。如果要实现不同宿主node上pod这里也可以理解为容器互相通信就不能使用默认的docker0提供的网段我们需要部署一个覆盖网络让每个node节点的docker0网络都处于不同的网段这样通过添加一些路由转发策略就能让集群中各个pod在同一个虚拟的网络中实现通信。 从github官网下载最新版本。 wget https://github.com/coreos/flannel/releases/download/v0.10.0/flannel-v0.10.0-linux-amd64.tar.gz tar xf flannel-v0.10.0-linux-amd64.tar.gz cp flanneld /usr/local/bin/ cp mk-docker-opts.sh /usr/local/libexec/ 创建启动文件/usr/lib/systemd/system/flanneld.service新增如下内容 [Unit] DescriptionFlanneld overlay address etcd agent Afternetwork.target Afternetwork-online.target Wantsnetwork-online.target Afteretcd.service Beforedocker.service[Service] Typenotify EnvironmentFile/etc/sysconfig/flanneld EnvironmentFile-/etc/sysconfig/docker-network ExecStart/usr/local/bin/flanneld \$FLANNEL_ETCD_ENDPOINTS \$FLANNEL_ETCD_PREFIX \$FLANNEL_OPTIONS ExecStartPost/usr/local/libexec/mk-docker-opts.sh -d /run/flannel/docker Restarton-failure[Install] WantedBymulti-user.target RequiredBydocker.service 对上面的文件做一下解释 Flannel网络必须在宿主机网络能对外其它node节点正常通信的情况下启动才有意义所以这里定义Afternetwork.target只有当Flannel 网络启动之后才能创建一个与其它节点不会冲突的网络而docker的网络需要和fannel 网络相同才能保证跨主机通信所以docker必须要在flannel网络创建后才能启动这里定义Beforedocker.service创建配置文件/etc/sysconfig/flanneld设置为如下内容 cat EOF /etc/sysconfig/flanneld # Flanneld configuration options # etcd url location. Point this to the server where etcd runs FLANNEL_ETCD_ENDPOINTS-etcd-endpointshttp://172.18.8.200:2379# etcd config key. This is the configuration key that flannel queries # For address range assignment FLANNEL_ETCD_PREFIX-etcd-prefix/atomic.io/network# Any additional options that you want to pass FLANNEL_OPTIONS EOF 在master节点上为 falnnel 创建分配的网络。 [rootmaster ~]# etcdctl mk /atomic.io/network/config {Network: 10.244.0.0/16} 在各node节点上启动 flannel。 systemctl daemon-reload systemctl start flanneld.service systemctl enable flanneld.service 检查是否启动好。 ps -ef |grep flanneld 也可以使用自助安装官方建议的使用方法。kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml 5、启动docker 编辑文件/usr/lib/systemd/system/docker.service修改为如下内容让docker使用flannel网络。 [Unit] DescriptionDocker Application Container Engine Documentationhttps://docs.docker.com Afternetwork-online.target firewalld.service flannel.service Wantsnetwork-online.target Requiresflanneld.service[Service] Typenotify EnvironmentFile-/run/flannel/docker ExecStart/usr/bin/dockerd $DOCKER_OPTS ExecReload/bin/kill -s HUP $MAINPID LimitNOFILEinfinity LimitNPROCinfinity LimitCOREinfinity TimeoutStartSec0 Delegateyes KillModeprocess Restarton-failure StartLimitBurst3 StartLimitInterval60s[Install] WantedBymulti-user.target 我们最后启动docker服务。 systemctl daemon-reload systemctl restart docker.service systemctl enable docker.service 我们可以看到docker0已经连接到flannel0并且添加10.244.71.0/24的路由。 [rootnode01 ~]# ip r default via 172.18.8.1 dev ens33 proto static metric 100 10.244.0.0/16 dev flannel0 proto kernel scope link src 10.244.71.0 10.244.71.0/24 dev docker0 proto kernel scope link src 10.244.71.1 172.18.0.0/16 dev ens33 proto kernel scope link src 172.18.8.201 metric 100 五、master节点验证 [rootmaster ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION node01.wzlinux.com Ready none 5m38s v1.12.2 node02.wzlinux.com Ready none 5m34s v1.12.2 先运行几个pod看一下。 kubectl run nginx --imagenginx --replicas3 查看一下pod状态发现容器的状态为ContainerCreating使用kubectl describe pod POD_NAME发现在请求k8s.gcr.io/pause:3.1pod镜像模板。 因为我们还没有pod基础设施镜像k8s.gcr.io/pause:3.1就是所有pod的模板我们需要从gcr.io下载但是这个地址我们国内是无法访问的我们可以使用间接的方法在所有的node节点上我们可以从阿里云的镜像下载然后再tag成我们需要的镜像。 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1 docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1 k8s.gcr.io/pause:3.1 docker image rm registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1 问题解决之后我们再次查看。 [rootmaster ~]# kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE nginx-dbddb74b8-gzd6j 1/1 Running 0 2m11s 10.244.50.3 node02.wzlinux.com none nginx-dbddb74b8-hmmll 1/1 Running 0 2m11s 10.244.50.2 node02.wzlinux.com none nginx-dbddb74b8-lpkln 1/1 Running 0 2m11s 10.244.71.2 node01.wzlinux.com none 当前的网络结构图如下所示 我们可以创建一个service查看其分配的IP。 [rootmaster ~]# kubectl expose deploy nginx --port8888 --target-port80[rootmaster ~]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 none 443/TCP 51m nginx ClusterIP 10.98.190.189 none 8888/TCP 7s 至此使用二进制程序搭建的过程我们已经介绍完了。转载于:https://blog.51cto.com/wzlinux/2322345
http://www.pierceye.com/news/303535/

相关文章:

  • 小型企业网站排名前十做网站的条件
  • 成都网站建设有名的公司网上商城制作哪家好
  • 做网站宣传多少钱黔东南网站设计公司
  • 网站开发人员职业分析wordpress数据库替换网址
  • ps切片工具做网站道滘镇网站仿做
  • 电子商务他们的代表网站html5视频网站模板
  • 广州网站建设乐云seo上海到北京高铁最快几小时
  • wordpress 音乐网站网站建设开发软件有哪些方面
  • 湛江网站营销163网站是jsp做的吗
  • 营山网站建设陕西做网站的公司地址
  • 十大网站黄页免费加盟办厂代加工
  • 上海 网站建设google深圳建网站 (报价)
  • 响应式做的比较好的网站校园网认证登录入口
  • 专业网站设计学校空间放两个网站
  • 万户网站建设网站流量突然增加
  • 中山住房和建设局网站小程序搭建的方式
  • 网站标题怎么做游戏推广工作好做吗
  • 网页设计制作网站模板免费静态网页设计模板免费
  • 成都的网站建设开发公司黄石网站建
  • 便宜的做网站公司网上下载的网页模板怎么用
  • 网站开发制作软件网站运营推广主要做什么的
  • 网页设计怎么建立网站网站馆店精准引流怎么推广
  • iis6建设网站上海到北京飞机航班查询
  • 做网站 创业 流程什么是网站标题
  • 怎么查询菠菜网站做没作弊沙朗做网站公司
  • 网站的建设周期与阶段广州王牌seo
  • 连江建设局网站手机网站建设套餐内容
  • 收录网站排名wordpress 搜索过滤
  • 上海网站建设代码长春又出现一例
  • 国外包装设计欣赏网站wordpress4.9.4环境要求