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

企聚网站建设艾纳网站建设

企聚网站建设,艾纳网站建设,wordpress 插件安装,建设公司网站的申请目录 ​编辑 一、环境准备 1.2调整内核参数 二、所有节点部署docker 三、所有节点安装kubeadm#xff0c;kubelet和kubectl 3.1定义kubernetes源 3.2开机自启kubelet 四、部署K8S集群 4.1查看初始化需要的镜像 4.2在 master 节点上传 v1.20.11.zip 压缩包至 /opt 目录… 目录 ​编辑 一、环境准备 1.2调整内核参数 二、所有节点部署docker 三、所有节点安装kubeadmkubelet和kubectl 3.1定义kubernetes源 3.2开机自启kubelet 四、部署K8S集群 4.1查看初始化需要的镜像 4.2在 master 节点上传 v1.20.11.zip 压缩包至 /opt 目录 4.3复制镜像和脚本到 node 节点并在 node 节点上执行脚本加载镜像文件 4.4初始化kubeadm 方法一 方法二 4.5设定kubectl 4.6所有节点部署网络插件flannel 方法一 方法二 4.7在master节点查看节点状态 4.8测试 pod 资源创建 4.9暴露端口提供服务 4.10测试访问 4.11扩展3个副本 五、部署 Dashboard 六、安装Harbor私有仓库 6.1修改主机名 6.2所有节点加上主机名映射 6.3安装 docker 6.4安装 Harbor 6.5生成证书 6.6在一个node节点上登录harbo 6.7上传镜像 6.8在master节点上删除之前创建的nginx资源  七、内核参数优化方案 一、环境准备 master2C/4Gcpu核心数要求大于2 192.168.10.19 docker、kubeadm、kubelet、kubectl、flannel node012C/2G 192.168.10.20 docker、kubeadm、kubelet、kubectl、flannel node022C/2G 192.168.10.21 docker、kubeadm、kubelet、kubectl、flannel Harbor节点hub.kgc.com 192.168.10.13 docker、docker-compose、harbor-offline-v1.2.2 1、在所有节点上安装Docker和kubeadm 2、部署Kubernetes Master 3、部署容器网络插件 4、部署 Kubernetes Node将节点加入Kubernetes集群中 5、部署 Dashboard Web 页面可视化查看Kubernetes资源 6、部署 Harbor 私有仓库存放镜像资源 systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i s/enforcing/disabled/ /etc/selinux/config iptables -F iptables -t nat -F iptables -t mangle -F iptables -X swapoff -a #交换分区必须要关闭 sed -ri s/.*swap.*/#/ /etc/fstab #永久关闭swap分区符号在sed命令中代表上次匹配的结果 #加载 ip_vs 模块 for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o ^[^.]*);do echo $i; /sbin/modinfo -F filename $i /dev/null 21 /sbin/modprobe $i;done//修改主机名 hostnamectl set-hostname master01 hostnamectl set-hostname node01 hostnamectl set-hostname node02//所有节点修改hosts文件 vim /etc/hosts 192.168.10.19 master01 192.168.10.20 node01 192.168.10.21 node02 1.2调整内核参数 cat /etc/sysctl.d/kubernetes.conf EOF #开启网桥模式可将网桥的流量传递给iptables链 net.bridge.bridge-nf-call-ip6tables1 net.bridge.bridge-nf-call-iptables1 #关闭ipv6协议 net.ipv6.conf.all.disable_ipv61 net.ipv4.ip_forward1 EOF//生效参数 sysctl --system 二、所有节点部署docker yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum install -y docker-ce docker-ce-cli containerd.iomkdir /etc/docker cat /etc/docker/daemon.json EOF {registry-mirrors: [https://6ijb8ubo.mirror.aliyuncs.com],exec-opts: [native.cgroupdriversystemd],log-driver: json-file,log-opts: {max-size: 100m} } EOF #使用Systemd管理的Cgroup来进行资源控制与管理因为相对Cgroupfs而言Systemd限制CPU、内存等资源更加简单和成熟稳定。 #日志使用json-file格式类型存储大小为100M保存在/var/log/containers目录下方便ELK等日志系统收集和管理日志。systemctl daemon-reload systemctl restart docker.service systemctl enable docker.service docker info | grep Cgroup Driver Cgroup Driver: systemd 三、所有节点安装kubeadmkubelet和kubectl 3.1定义kubernetes源 cat /etc/yum.repos.d/kubernetes.repo EOF [kubernetes] nameKubernetes baseurlhttps://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled1 gpgcheck0 repo_gpgcheck0 gpgkeyhttps://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOFyum install -y kubelet-1.20.11 kubeadm-1.20.11 kubectl-1.20.11 3.2开机自启kubelet systemctl enable kubelet.service #K8S通过kubeadm安装出来以后都是以Pod方式存在即底层是以容器方式运行所以kubelet必须设置开机自启 四、部署K8S集群 4.1查看初始化需要的镜像 kubeadm config images list 4.2在 master 节点上传 v1.20.11.zip 压缩包至 /opt 目录 unzip v1.20.11.zip -d /opt/k8s cd /opt/k8s/v1.20.11 for i in $(ls *.tar); do docker load -i $i; done 4.3复制镜像和脚本到 node 节点并在 node 节点上执行脚本加载镜像文件 scp -r /opt/k8s rootnode01:/opt scp -r /opt/k8s rootnode02:/opt 4.4初始化kubeadm 方法一 kubeadm config print init-defaults /opt/kubeadm-config.yamlcd /opt/ vim kubeadm-config.yaml ...... 11 localAPIEndpoint: 12 advertiseAddress: 192.168.10.19 #指定master节点的IP地址 13 bindPort: 6443 ...... 34 kubernetesVersion: v1.20.11 #指定kubernetes版本号 35 networking: 36 dnsDomain: cluster.local 37 podSubnet: 10.244.0.0/16 #指定pod网段10.244.0.0/16用于匹配flannel默认网段 38 serviceSubnet: 10.96.0.0/16 #指定service网段 39 scheduler: {}#末尾再添加以下内容 --- apiVersion: kubeproxy.config.k8s.io/v1alpha1 kind: KubeProxyConfiguration mode: ipvs #把默认的kube-proxy调度方式改为ipvs模式kubeadm init --configkubeadm-config.yaml --upload-certs | tee kubeadm-init.log #--experimental-upload-certs 参数可以在后续执行加入节点时自动分发证书文件K8S V1.16版本开始替换为 --upload-certs #tee kubeadm-init.log 用以输出日志#查看 kubeadm-init 日志 less kubeadm-init.log#kubernetes配置文件目录 ls /etc/kubernetes/#存放ca等证书和密码的目录 ls /etc/kubernetes/pki 方法二 kubeadm init \ --apiserver-advertise-address192.168.10.19 \ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-versionv1.20.11 \ --service-cidr10.96.0.0/16 \ --pod-network-cidr10.244.0.0/16 \--token-ttl0 初始化集群需使用kubeadm init命令可以指定具体参数初始化也可以指定配置文件初始化。 可选参数 --apiserver-advertise-addressapiserver通告给其他组件的IP地址一般应该为Master节点的用于集群内部通信的IP地址0.0.0.0表示节点上所有可用地址 --apiserver-bind-portapiserver的监听端口默认是6443 --cert-dir通讯的ssl证书文件默认/etc/kubernetes/pki --control-plane-endpoint控制台平面的共享终端可以是负载均衡的ip地址或者dns域名高可用集群时需要添加 --image-repository拉取镜像的镜像仓库默认是k8s.gcr.io --kubernetes-version指定kubernetes版本 --pod-network-cidrpod资源的网段需与pod网络插件的值设置一致。Flannel网络插件的默认为10.244.0.0/16Calico插件的默认值为192.168.0.0/16 --service-cidrservice资源的网段 --service-dns-domainservice全域名的后缀默认是cluster.local --token-ttl默认token的有效期为24小时如果不想过期可以加上 --token-ttl0 这个参数 方法二初始化后需要修改 kube-proxy 的 configmap开启 ipvs kubectl edit cm kube-proxy -nkube-system 修改mode: ipvs 提示 ...... Your Kubernetes control-plane has initialized successfully!To start using your cluster, you need to run the following as a regular user:mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/configAlternatively, if you are the root user, you can run:export KUBECONFIG/etc/kubernetes/admin.confYou should now deploy a pod network to the cluster. Run kubectl apply -f [podnetwork].yaml with one of the options listed at:https://kubernetes.io/docs/concepts/cluster-administration/addons/Then you can join any number of worker nodes by running the following on each as root:kubeadm join 192.168.10.19:6443 --token wfjo7j.baa0aheyw39w3m7h \--discovery-token-ca-cert-hash sha256:77100ff66b20100cbd9f1c289788e43aee69c5b4e24cc2c74c2e5d634a074fdc 4.5设定kubectl kubectl需经由API server认证及授权后方能执行相应的管理操作kubeadm 部署的集群为其生成了一个具有管理员权限的认证配置文件 /etc/kubernetes/admin.conf它可由 kubectl 通过默认的 “$HOME/.kube/config” 的路径进行加载。 mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config//如果 kubectl get cs 发现集群不健康更改以下两个文件 vim /etc/kubernetes/manifests/kube-scheduler.yaml vim /etc/kubernetes/manifests/kube-controller-manager.yaml#修改如下内容把--bind-address127.0.0.1变成--bind-address192.168.10.19 #修改成k8s的控制节点master01的ip 把httpGet:字段下的hosts由127.0.0.1变成192.168.10.19有两处 #- --port0 # 搜索port0把这一行注释掉systemctl restart kubelet 4.6所有节点部署网络插件flannel 方法一 /所有节点上传flannel镜像 flannel.tar 到 /opt 目录master节点上传 kube-flannel.yml 文件 cd /opt docker load flannel.tar 在 master 节点创建 flannel 资源 kubectl apply -f kube-flannel.yml 方法二 kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.ymlkubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml#在 node 节点上执行 kubeadm join 命令加入群集 kubeadm join 192.168.10.19:6443 --token rc0kfs.a1sfe3gl4dvopck5 \--discovery-token-ca-cert-hash sha256:864fe553c812df2af262b406b707db68b0fd450dc08b34efb73dd5a4771d37a2 4.7在master节点查看节点状态 kubectl get nodeskubectl get pods -n kube-systemNAME READY STATUS RESTARTS AGE coredns-bccdc95cf-c9w6l 1/1 Running 0 71m coredns-bccdc95cf-nql5j 1/1 Running 0 71m etcd-master 1/1 Running 0 71m kube-apiserver-master 1/1 Running 0 70m kube-controller-manager-master 1/1 Running 0 70m kube-flannel-ds-amd64-kfhwf 1/1 Running 0 2m53s kube-flannel-ds-amd64-qkdfh 1/1 Running 0 46m kube-flannel-ds-amd64-vffxv 1/1 Running 0 2m56s kube-proxy-558p8 1/1 Running 0 2m53s kube-proxy-nwd7g 1/1 Running 0 2m56s kube-proxy-qpz8t 1/1 Running 0 71m kube-scheduler-master 1/1 Running 0 70m 4.8测试 pod 资源创建 kubectl create deployment nginx --imagenginxkubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES nginx-554b9c67f9-zr2xs 1/1 Running 0 14m 10.244.1.2 node01 none none 4.9暴露端口提供服务 kubectl expose deployment nginx --port80 --typeNodePortkubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 none 443/TCP 3h57m myapp-ky20 NodePort 10.96.56.120 none 80:32404/TCP 3s 4.10测试访问 ​curl http://node01:32404 4.11扩展3个副本 kubectl scale deployment nginx --replicas3 kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES nginx-554b9c67f9-9kh4s 1/1 Running 0 66s 10.244.1.3 node01 none none nginx-554b9c67f9-rv77q 1/1 Running 0 66s 10.244.2.2 node02 none none nginx-554b9c67f9-zr2xs 1/1 Running 0 17m 10.244.1.2 node01 none none 五、部署 Dashboard 在 master01 节点上操作 #上传 recommended.yaml 文件到 /opt/k8s 目录中 cd /opt/k8s vim recommended.yaml #默认Dashboard只能集群内部访问修改Service为NodePort类型暴露到外部 kind: Service apiVersion: v1 metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard spec:ports:- port: 443targetPort: 8443nodePort: 30001 #添加type: NodePort #添加selector:k8s-app: kubernetes-dashboardkubectl apply -f recommended.yaml#创建service account并绑定默认cluster-admin管理员集群角色 kubectl create serviceaccount dashboard-admin -n kube-system kubectl create clusterrolebinding dashboard-admin --clusterrolecluster-admin --serviceaccountkube-system:dashboard-admin kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk /dashboard-admin/{print $1})#使用输出的token登录Dashboard https://NodeIP:30001 六、安装Harbor私有仓库 6.1修改主机名 hostnamectl set-hostname hub.kgc.com 6.2所有节点加上主机名映射 echo 192.168.10.23 hub.kgc.com /etc/hosts 6.3安装 docker yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum install -y docker-ce docker-ce-cli containerd.io#所有 node 节点都修改 docker 配置文件加上私有仓库配置mkdir /etc/docker cat /etc/docker/daemon.json EOF {registry-mirrors: [https://6ijb8ubo.mirror.aliyuncs.com],exec-opts: [native.cgroupdriversystemd],log-driver: json-file,log-opts: {max-size: 100m},insecure-registries: [https://hub.kgc.com] } EOFsystemctl start docker systemctl enable docker 6.4安装 Harbor 上传 harbor-offline-installer-v1.2.2.tgz 和 docker-compose 文件到 /opt 目录 cd /opt cp docker-compose /usr/local/bin/ chmod x /usr/local/bin/docker-composetar zxvf harbor-offline-installer-v1.2.2.tgz cd harbor/ vim harbor.cfg 5 hostname hub.kgc.com 9 ui_url_protocol https 24 ssl_cert /data/cert/server.crt 25 ssl_cert_key /data/cert/server.key 59 harbor_admin_password Harbor12345 6.5生成证书 mkdir -p /data/cert cd /data/cert #生成私钥 openssl genrsa -des3 -out server.key 2048 输入两遍密码123456#生成证书签名请求文件 openssl req -new -key server.key -out server.csr 输入私钥密码123456 输入国家名CN 输入省名BJ 输入市名BJ 输入组织名KGC 输入机构名KGC 输入域名hub.kgc.com 输入管理员邮箱adminkgc.com 其它全部直接回车#备份私钥 cp server.key server.key.org#清除私钥密码 openssl rsa -in server.key.org -out server.key 输入私钥密码123456#签名证书 openssl x509 -req -days 1000 -in server.csr -signkey server.key -out server.crtchmod x /data/cert/*cd /opt/harbor/ ./install.sh ​在本地使用火狐浏览器访问https://hub.kgc.com​ 添加例外 - 确认安全例外 用户名admin 密码Harbor12345 6.6在一个node节点上登录harbo docker login -u admin -p Harbor12345 https://hub.kgc.com 6.7上传镜像 docker tag nginx:latest hub.kgc.com/library/nginx:v1 docker push hub.kgc.com/library/nginx:v1 6.8在master节点上删除之前创建的nginx资源  kubectl delete deployment nginxkubectl create deployment nginx-deployment --imagehub.kgc.com/library/nginx:v1 --port80 --replicas3kubectl expose deployment nginx-deployment --port30000 --target-port80kubectl get svc,pods NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/kubernetes ClusterIP 10.96.0.1 none 443/TCP 10m service/nginx-deployment ClusterIP 10.96.222.161 none 30000/TCP 3m15sNAME READY STATUS RESTARTS AGE pod/nginx-deployment-77bcbfbfdc-bv5bz 1/1 Running 0 16s pod/nginx-deployment-77bcbfbfdc-fq8wr 1/1 Running 0 16s pod/nginx-deployment-77bcbfbfdc-xrg45 1/1 Running 0 3m39syum install ipvsadm -y ipvsadm -Lncurl 10.96.222.161:30000kubectl edit svc nginx-deployment 25 type: NodePort #把调度策略改成NodePortkubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/kubernetes ClusterIP 10.96.0.1 none 443/TCP 29m service/nginx-deployment NodePort 10.96.222.161 none 30000:32340/TCP 22m 浏览器访问 192.168.10.19:32340 192.168.10.20:32340 192.168.10.21:32340 #将cluster-admin角色权限授予用户system:anonymous  kubectl create clusterrolebinding cluster-system-anonymous --clusterrolecluster-admin --usersystem:anonymous 七、内核参数优化方案 cat /etc/sysctl.d/kubernetes.conf EOF net.bridge.bridge-nf-call-iptables1 net.bridge.bridge-nf-call-ip6tables1 net.ipv4.ip_forward1 net.ipv4.tcp_tw_recycle0 vm.swappiness0 #禁止使用 swap 空间只有当系统内存不足OOM时才允许使用它 vm.overcommit_memory1 #不检查物理内存是否够用 vm.panic_on_oom0 #开启 OOM fs.inotify.max_user_instances8192 fs.inotify.max_user_watches1048576 fs.file-max52706963 #指定最大文件句柄数 fs.nr_open52706963 #仅4.4以上版本支持 net.ipv6.conf.all.disable_ipv61 net.netfilter.nf_conntrack_max2310720 EOF
http://www.zqtcl.cn/news/50908/

相关文章:

  • 做网站外包公司名称网站开发小组分工
  • 网站上线需要怎么做网站备案帐号是什么
  • 地产设计网站网站建设项目公司
  • 绵阳低价网站建设免费素材网站设计
  • 软件定制网站建设网站备案修改域名ip
  • 南京建网站做外贸需要自己建网站吗
  • wordpress移动端m抖音seo排名优化软件
  • 登烈建站网站上全景云台怎么做的
  • 城乡互动联盟网站建设wordpress手机ui
  • 教室在线设计网站网站开发职位工资
  • 学生做兼职哪个网站wordpress $show_date
  • 洛阳网站开发网络界面设计
  • 县级网站建设推广模式怎么写
  • 东莞企业网站制科技公司网站建设
  • 网站域名到期后不续费会怎样前端写一个页面多少钱
  • 永康做网站的公司wordpress表情按钮
  • springcloud项目搭建网站改版seo
  • 如何建免费的企业网站wordpress網頁版
  • 东营兴通建设工程公司网站网站正在建设 敬请期待
  • 支付网站怎么设计的教务管理系统密码忘记了怎么办
  • 创客贴网站做海报技能平度市网站建设
  • 做物流百度网站国外游戏网站设计
  • 网站开发开题报告关键问题电子商务网站备案
  • 注册网站如何备案什么是网络口碑营销
  • 定制企业网站开发公司建筑设计方案大全
  • 做粤菜的视频网站任县网站建设公司
  • 惠州中小企业网站制作最新章节 第一百四十七章 做视频网站
  • 建立网站ftp共享网站的详细规划
  • 购物网站图标电商网站设计方案
  • 做的好的购物网站网站后台管理要求