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

太原网站优化公司asp. net 做网站

太原网站优化公司,asp. net 做网站,长沙网站推广公司哪家好,wordpress中小企业部署前规划 整个部署包括2个部分#xff0c;一是管理集群部署#xff0c;二是k8s集群部署。管理集群功能主要提供web界面方式管理k8s集群。正常情况#xff0c;管理集群3个节点即可#xff0c;k8s集群至少3个。本文以3节点管理集群#xff0c;3节点k8s集群为例 说明部署过…部署前规划 整个部署包括2个部分一是管理集群部署二是k8s集群部署。管理集群功能主要提供web界面方式管理k8s集群。正常情况管理集群3个节点即可k8s集群至少3个。本文以3节点管理集群3节点k8s集群为例 说明部署过程 管理集群需要通过域名的方式访问需要在访问客户端添加域名解析示例配置的域名以及 节点IP规划如下 管理集群访问域名:rancher.bigtera.com 节点功能节点hostname节点管理IP节点存储ip访问ceph用管理节点1rancher1172.17.73.161管理节点2rancher2172.17.73.162管理节点3rancher3172.17.73.163 k8s集群可能需要对外开放 API调用需要保证API server的高可用所以需要给API server配置VIP示例配置的VIP以及 节点IP规划如下 k8s集群 api_server vip:172.17.73.154 节点功能节点hostname节点管理IP节点存储ip访问ceph用k8s节点1k8s1172.17.73.15110.10.101.151k8s节点2k8s2172.17.73.15210.10.101.152k8s节点3k8s3172.17.73.15310.10.101.153 除了上面的配置规划需要考虑平台内部可能会提供容器镜像等其他服务需要为平台内部的服务提供访问 入口一般情况下至少规划预留至少一个 IP本文以 172.17.73.158172.17.73.159 为例 有了上面的规划就可以开始动手部署了。 部署步骤 1管理集群部署rancher 克隆管理集群vm模板 根据实际情况选择clone数目一般3节点的集群clone3个vm 配置vm vm内置磁盘有2块一块是作为OS另一块存放一些应用数据。网卡也有2块一块用作集群管理ip一块用作连接外部 ceph存储管理集群一般不需要连接ceph存储可以只配置一个管理ip vm内置账号 bigtera/1 登陆后可以看到默认挂载了 /rancher_deploy里面有提前下载好的部署软件包。 bigterarancher1:~$ df -h Filesystem Size Used Avail Use% Mounted on udev 2.0G 0 2.0G 0% /dev tmpfs 396M 5.7M 390M 2% /run /dev/sda1 98G 9.2G 84G 10% / tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/sdb1 493G 144M 467G 1% /rancher_deploy tmpfs 396M 0 396M 0% /run/user/1001 bigterarancher1:~$ ll /rancher_deploy/ total 37016 drwxrwxrwx 5 root root 4096 Nov 30 18:11 ./ drwxr-xr-x 24 root root 4096 Nov 30 14:08 ../ -rwxr-xr-x 1 bigtera bigtera 37871616 Nov 30 15:41 helm* drwxrwxr-x 2 bigtera bigtera 4096 Nov 30 18:48 helm_package/ drwx------ 2 bigtera bigtera 16384 Nov 30 14:09 lostfound/ drwxrwxr-x 3 bigtera bigtera 4096 Dec 3 15:02 rke1.2.1/ bigterarancher1:~$ 配置主要包括 配置vm hostname和ip 配置 hostname hostnamectl set-hostname rancher1配置vm ip bigterarancher1:/rancher_deploy/rke1.2.1$ cat /etc/network/interfaces # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5).source /etc/network/interfaces.d/*# The loopback network interface auto lo iface lo inet loopback# The primary network interface auto ens18 ens19 iface ens18 inet staticaddress 172.17.73.161netmask 255.255.252.0gateway 172.17.75.254#dns-nameservers 114.114.114.114 iface ens19 inet staticaddress 10.10.101.161netmask 255.255.255.0 通过rke创建集群 所有管理集群的节点 配置完成后在 节点1上开始 创建管理集群因为创建过程会和其他管理节点通信需要配置好 节点1 到 其他节点的免密登陆 配置免密登陆 因为vm都是从同一个 vm clone出来的.ssh/authorized_keys 中已经增加了 证书只是第一次登陆需要输入yes 确认如下 bigterarancher1:/rancher_deploy/rke1.2.1$ ssh 172.17.73.163 The authenticity of host 172.17.73.163 (172.17.73.163) cant be established. ECDSA key fingerprint is SHA256:gp8xiVd/q4Qrfqj7Ie/lk5q3V3mnmMLYNIfFi2frI8I. Are you sure you want to continue connecting (yes/no)? yes依上面方法登陆所有的节点161 到163 节点 验证 做完后ssh 登陆3个节点是否可以 免密登陆 创建集群 完成免密配置后生成集群的配置文件如下 bigterarancher1:/rancher_deploy/rke1.2.1$ cat cluster.yml nodes:- address: 172.17.73.161user: bigterarole: [controlplane, etcd, worker]- address: 172.17.73.162user: bigterarole: [controlplane, etcd, worker]- address: 172.17.73.163user: bigterarole: [controlplane, etcd, worker] bigterarancher1:/rancher_deploy/rke1.2.1$ 生成配置文件后执行如下命令 ./rke_linux-amd64 up --config cluster.yml执行完毕后会看到命令 最后成功的输出如下 INFO[0116] [ingress] ingress controller nginx deployed successfully INFO[0116] [addons] Setting up user addons INFO[0116] [addons] no user addons defined INFO[0116] Finished building Kubernetes cluster successfully bigterarancher1:/rancher_deploy/rke1.2.1$ 创建成功后会在 目录下生成 如下管理集群的配置文件 bigterarancher1:/rancher_deploy/rke1.2.1$ ls -l kube_config_cluster.yml -rw-r----- 1 bigtera bigtera 5388 Dec 4 19:25 kube_config_cluster.yml bigterarancher1:/rancher_deploy/rke1.2.1$ 把该配置文件scp 到其他2个 节点162和163 scp kube_config_cluster.yml 172.17.73.162:/rancher_deploy/rke1.2.1/scp kube_config_cluster.yml 172.17.73.163:/rancher_deploy/rke1.2.1/验证管理集群部署是否正常可以看到集群中 3个节点的信息 显示 都是 ready状态 bigterarancher1:/rancher_deploy/rke1.2.1$ kubectl get nodes NAME STATUS ROLES AGE VERSION 172.17.73.161 Ready controlplane,etcd,worker 3m20s v1.19.3 172.17.73.162 Ready controlplane,etcd,worker 3m20s v1.19.3 172.17.73.163 Ready controlplane,etcd,worker 3m20s v1.19.3 bigterarancher1:/rancher_deploy/rke1.2.1$ 安装rancher 按照上面步骤完成管理集群创建和配置后就可以通过helm方式安装 rancher集群已经预装了helm。 具体步骤如下 rancher依赖cert-manger用来管理自身的证书签发 install cert-manager kubectl create ns cert-managerbigterarancher1:/rancher_deploy/helm_package$ helm install cert-manager ./cert-manager-v1.0.3.tgz --namespace cert-manager --set installCRDstrue install traefik bigterarancher1:/rancher_deploy/helm_package$ helm install traefik ./traefik-9.11.0.tgz install rancher 其中 指定了文档开始 规划的 管理集群的域名 rancher.bigtera.com 该域名会通过traefik模块 被解析到管理集群的每个节点.(即被解析到 172.17.73.161172.17.73.162172.17.73.163) kubectl create ns cattle-systembigterarancher1:/rancher_deploy/helm_package$ helm install rancher ./rancher-2.5.2.tgz --namespace cattle-system --set hostnamerancher.bigtera.com 安装完成后可以验证该域名的解析情况 bigterarancher1:/rancher_deploy/helm_package$ kubectl get ingress --all-namespaces Warning: extensions/v1beta1 Ingress is deprecated in v1.14, unavailable in v1.22; use networking.k8s.io/v1 Ingress NAMESPACE NAME CLASS HOSTS ADDRESS PORTS AGE cattle-system rancher none rancher.bigtera.com 172.17.73.161,172.17.73.162,172.17.73.163 80, 443 6m1s bigterarancher1:/rancher_deploy/helm_package$ 此时在客户端添加上面的 域名解析到 hosts配置文件就可以访问管理集群了以win10 为例 添加如下到 C:\WINDOWS\system32\drivers\etc\hosts 172.17.73.161 rancher.bigtera.com 172.17.73.162 rancher.bigtera.com 172.17.73.163 rancher.bigtera.com 加入多个条目目的是 当有管理节点down时可以解析到其他正常节点。配置完成后chrome 访问域名如下第一次登陆后需要设置密码 初始化完成后效果如下 可能的问题处理 部署后检查 pod 状态发现metirc server pod 的状态不对 会显示如下状态 bigterarancher1:/rancher_deploy/helm_package/rancher$ kubectl get pod --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-autoscaler-79599b9dc6-pwm52 1/1 Running 0 147m kube-system metrics-server-8449844bf-kpv4d 0/1 ImagePullBackOff 0 147m kube-system rke-coredns-addon-deploy-job-qgvh6 0/1 Completed 0 147m kube-system rke-ingress-controller-deploy-job-ptvc9 0/1 Completed 0 146m kube-system rke-metrics-addon-deploy-job-n4z66 0/1 Completed 0 147m kube-system rke-network-plugin-deploy-job-lm72k 0/1 Completed 0 147实际上 image已经 pull 下来需要修改 对应deployment中的配置文件 将下面的配置 bigterarancher1:/rancher_deploy/helm_package/rancher$ kubectl edit deploy metrics-server -n kube-system 通过上面命令修改 51 containers:52 - command:53 - /metrics-server54 - --kubelet-insecure-tls55 - --kubelet-preferred-address-typesInternalIP56 - --logtostderr57 image: rancher/metrics-server:v0.3.658 imagePullPolicy: Always59 name: metrics-server60 resources: {} 修改为 51 containers:52 - command:53 - /metrics-server54 - --kubelet-insecure-tls55 - --kubelet-preferred-address-typesInternalIP56 - --logtostderr57 image: rancher/metrics-server:v0.3.658 imagePullPolicy: IfNotPresent59 name: metrics-server60 resources: {}61 terminationMessagePath: /dev/termination-log62 terminationMessagePolicy: File63 dnsPolicy: ClusterFirst 修改完成后再次检查 所有pod的状态都正常了 bigterarancher1:/rancher_deploy/helm_package/rancher$ kubectl get pod --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE cert-manager cert-manager-556549df9-nxnn8 1/1 Running 0 127m cert-manager cert-manager-cainjector-69d7cb5d4-4k5nv 1/1 Running 0 127m cert-manager cert-manager-webhook-c5bdf945c-c6tpj 1/1 Running 0 127m default traefik-77fdb5c487-42xqx 1/1 Running 0 127m ingress-nginx default-http-backend-65dd5949d9-wgsql 1/1 Running 0 162m ingress-nginx nginx-ingress-controller-8f4jb 1/1 Running 0 162m ingress-nginx nginx-ingress-controller-hnrrk 1/1 Running 0 162m ingress-nginx nginx-ingress-controller-xlp44 1/1 Running 0 162m kube-system calico-kube-controllers-649b7b795b-7zsbd 1/1 Running 0 163m kube-system canal-jx5t2 2/2 Running 0 163m kube-system canal-vqbgw 2/2 Running 0 163m kube-system canal-wtk67 2/2 Running 0 163m kube-system coredns-6f85d5fb88-6g6v4 1/1 Running 0 162m kube-system coredns-6f85d5fb88-hfjkq 1/1 Running 0 162m kube-system coredns-autoscaler-79599b9dc6-pwm52 1/1 Running 0 162m kube-system metrics-server-56f9f865f-q4rmf 1/1 Running 0 108s kube-system rke-coredns-addon-deploy-job-qgvh6 0/1 Completed 0 163m kube-system rke-ingress-controller-deploy-job-ptvc9 0/1 Completed 0 162m kube-system rke-metrics-addon-deploy-job-n4z66 0/1 Completed 0 162m kube-system rke-network-plugin-deploy-job-lm72k 0/1 Completed 0 163m bigterarancher1:/rancher_deploy/helm_package/rancher$ 2k8s集群部署 克隆k8s-vm模板 根据实际情况选择clone数目一般3节点的集群clone3个vm 配置vm vm内置磁盘有2块一块是作为OS另一块存放一些应用数据。网卡也有2块一块用作集群管理ip一块用作连接外部 ceph存储管理集群一般不需要连接ceph存储可以只配置一个管理ip vm内置账号 bigtera/1 登陆后可以看到默认挂载了/k8s_deploy里面有提前下载好的部署软件包。 bigterak8s1:/k8s_deploy$ ll total 52 drwxrwxrwx 9 root root 4096 Dec 2 18:08 ./ drwxr-xr-x 24 root root 4096 Nov 30 14:10 ../ drwxrwxr-x 3 bigtera bigtera 4096 Dec 2 14:42 deploy/ drwxrwxr-x 6 bigtera bigtera 4096 Dec 2 17:52 harbor/ drwxrwxr-x 3 bigtera bigtera 4096 Dec 2 17:32 ingress/ -rw-r--r-- 1 bigtera bigtera 628 Dec 2 12:09 keepalived.conf drwx------ 2 root root 16384 Nov 30 14:10 lostfound/ drwxrwxr-x 2 bigtera bigtera 4096 Dec 2 17:46 metalLB/ drwxrwxr-x 2 bigtera bigtera 4096 Dec 2 18:09 rancher_agent/ drwxrwxr-x 2 bigtera bigtera 4096 Dec 2 14:11 tools/ bigterak8s1:/k8s_deploy$ df -h Filesystem Size Used Avail Use% Mounted on udev 3.9G 0 3.9G 0% /dev tmpfs 798M 664K 797M 1% /run /dev/sda1 98G 9.4G 84G 11% / tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/sdb1 492G 284M 466G 1% /k8s_deploy tmpfs 798M 0 798M 0% /run/user/1001 bigterak8s1:/k8s_deploy$ 和管理集群配置一样需要更改所有vm的hostname 和 ip根据文档开始的规划做配置因为k8s集群需要访问ceph所以需要配置存储ip。k8s集群基于ubuntu18网络配置文件路径有变化 bigterak8s1:/k8s_deploy$ cat /etc/hostname k8s1 bigterak8s1:/k8s_deploy$ cat /etc/netplan/01-netcfg.yaml # This file describes the network interfaces available on your system # For more information, see netplan(5). network:version: 2renderer: networkdethernets:ens18:dhcp4: noaddresses: [172.17.73.151/22]optional: truegateway4: 172.17.75.254#nameservers:# addresses: [114.114.114.114,8.8.8.8]ens19:dhcp4: noaddresses: [10.10.101.151/22]optional: true bigterak8s1:/k8s_deploy$ 根据规划k8s 集群需要vip,这里采用 keep alived来实现 keepalived 配置文件如下其中指定了73.154 为vip bigterak8s1:/k8s_deploy$ cat /etc/keepalived/keepalived.conf global_defs {notification_email {rootmydomain.com}notification_email_from svr2mydomain.comsmtp_server localhostsmtp_connect_timeout 30 }vrrp_instance VRRP1 {state BACKUP # Specify the network interface to which the virtual address is assignedinterface ens18virtual_router_id 66 # Set the value of priority lower on the backup server than on the master serverpriority 60 #need change,for cluster first node has top priorityadvert_int 1authentication {auth_type PASSauth_pass 1066}virtual_ipaddress {172.17.73.154/22} } 配置完成 检查 vip 是否已经正常启动部署时需要将vip 落到节点1上因为节点1 会作为集群的第一个节点如下 bigterak8s1:/k8s_deploy$ ip add 1: lo: LOOPBACK,UP,LOWER_UP mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens18: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 0e:1b:2f:c1:df:78 brd ff:ff:ff:ff:ff:ffinet 172.17.73.151/22 brd 172.17.75.255 scope global ens18valid_lft forever preferred_lft foreverinet 172.17.73.154/22 scope global secondary ens18valid_lft forever preferred_lft foreverinet6 fe80::c1b:2fff:fec1:df78/64 scope link valid_lft forever preferred_lft forever 创建k8s集群 如果想了解详细的k8s集群创建步骤可以参考https://jameswsg.github.io/2020-04-12-kubernets-ha-master-relate.html 1修改集群配置文件 模板中已经预置了集群的配置文件 kubeadm-config.yaml只需要根据实际ip规划情况做修改。 bigterak8s1:/k8s_deploy/deploy$ ll total 48 drwxrwxr-x 3 bigtera bigtera 4096 Dec 2 14:42 ./ drwxrwxrwx 9 root root 4096 Dec 2 18:08 ../ -rw-rw-r-- 1 bigtera bigtera 20755 Dec 2 14:42 calico.yaml drwxrwxr-x 15 bigtera bigtera 4096 Dec 2 14:01 ceph-csi/ -rw-rw-r-- 1 bigtera bigtera 998 Dec 2 13:10 kubeadm-config.yaml一般需要修改如下几行配置 11 localAPIEndpoint:12 advertiseAddress: 172.17.73.151 #集群第一个节点的ip26 controlPlaneEndpoint: 172.17.73.154:6443 集群的 vip 配置 2修改完成节点1执行初始化集群命令 sudo kubeadm init --configkubeadm-config.yaml --upload-certs |tee kubeadm-init.log输出中关键的信息如下 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/configYou can now join any number of the control-plane node running the following command on each as root:kubeadm join 172.17.73.154:6443 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:57eefb7284e74740bfc69e945d369d3f63b0dfeae8e39e3a61489fc3fd3a1726 \--control-plane --certificate-key fe75999962225a1627ebd69a5f4dca8c9af08caca5a3c2a4682e10e8bb4874d7 初始化完成后屏幕会有提示需要 粘贴上面的命令来配置来配置和 api-server通信证书需要执行如下命令 mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config 完成后可以检测第一个节点初始化的情况如下:(可以看到集群中 目前只有一个节点) bigterak8s1:/k8s_deploy/deploy$ kubectl get nodes NAME STATUS ROLES AGE VERSION k8snode1v18 NotReady master 2m27s v1.18.4 3节点2 加入集群 步骤2中的输出中有 加入集群的命令提示如下 You can now join any number of the control-plane node running the following command on each as root:kubeadm join 172.17.73.154:6443 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:57eefb7284e74740bfc69e945d369d3f63b0dfeae8e39e3a61489fc3fd3a1726 \--control-plane --certificate-key fe75999962225a1627ebd69a5f4dca8c9af08caca5a3c2a4682e10e8bb4874d7在节点2中直接粘贴上面的命令(注意需要加入 sudo ) bigterak8s2:~$ sudo kubeadm join 172.17.73.154:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:57eefb7284e74740bfc69e945d369d3f63b0dfeae8e39e3a61489fc3fd3a1726 --control-plane --certificate-key fe75999962225a1627ebd69a5f4dca8c9af08caca5a3c2a4682e10e8bb4874d7 命令结束后根据屏幕提示粘贴提示的命令 执行 mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config 4节点3 加入集群 节点3操作 和上面步骤一样 bigterak8s3:~$ sudo kubeadm join 172.17.73.154:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:57eefb7284e74740bfc69e945d369d3f63b0dfeae8e39e3a61489fc3fd3a1726 --control-plane --certificate-key fe75999962225a1627ebd69a5f4dca8c9af08caca5a3c2a4682e10e8bb4874d7 命令结束后根据屏幕提示粘贴提示的命令 执行 mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config 验证 集群当前状态 bigterak8s3:~$ kubectl get nodes NAME STATUS ROLES AGE VERSION k8s2 NotReady master 7m42s v1.18.4 k8s3 NotReady master 4m19s v1.18.4 k8snode1v18 NotReady master 15m v1.18.4 部署网络插件 bigterak8s1:/k8s_deploy/deploy$ kubectl apply -f calico.yaml 部署完网络插件等待一会检查所有pod 状态应该所有pod 都是 正常的running 状态如下如果有 pod 状态不对需要回头检查 bigterak8s1:/k8s_deploy/deploy$ kubectl get pod --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE kube-system calico-kube-controllers-5fbfc9dfb6-hrfpm 1/1 Running 0 2m32s kube-system calico-node-kcvv5 1/1 Running 0 2m32s kube-system calico-node-p8l8d 1/1 Running 0 2m32s kube-system calico-node-tmdw6 1/1 Running 0 2m32s kube-system coredns-7ff77c879f-8hn24 1/1 Running 0 22m kube-system coredns-7ff77c879f-ngfnh 1/1 Running 0 22m kube-system etcd-k8s2 1/1 Running 0 14m kube-system etcd-k8s3 1/1 Running 0 10m kube-system etcd-k8snode1v18 1/1 Running 0 22m kube-system kube-apiserver-k8s2 1/1 Running 0 14m kube-system kube-apiserver-k8s3 1/1 Running 0 10m kube-system kube-apiserver-k8snode1v18 1/1 Running 0 22m kube-system kube-controller-manager-k8s2 1/1 Running 0 14m kube-system kube-controller-manager-k8s3 1/1 Running 0 10m kube-system kube-controller-manager-k8snode1v18 1/1 Running 1 22m kube-system kube-proxy-4k4nk 1/1 Running 1 14m kube-system kube-proxy-52t9h 1/1 Running 1 22m kube-system kube-proxy-hndbf 1/1 Running 1 10m kube-system kube-scheduler-k8s2 1/1 Running 0 14m kube-system kube-scheduler-k8s3 1/1 Running 0 10m kube-system kube-scheduler-k8snode1v18 1/1 Running 1 22m bigterak8s1:/k8s_deploy/deploy$ 部署bigtera csi 插件 注意部署bigtera csi插件前需要ceph 集群ready并且 ceph需要做某些配置具体可以参考https://jameswsg.github.io/2020-06-20-kubernets-use-ceph-basedOn-bigtera-CSI.html 简单步骤整理如下 mater 节点执行taint 操作 k8s集群中每个节点既是master节点也是work节点。csi插件以容器方式运行需要运行在每个节点所以要taint否则csi的pod无法调度到节点 kubectl taint nodes --all node-role.kubernetes.io/master- 部署 bigterak8sTemplate:/k8s_deploy/deploy/ceph-csi/examples/rbd$ pwd /k8s_deploy/deploy/ceph-csi/examples/rbdbigterak8s1:/k8s_deploy/deploy/ceph-csi/examples/rbd$ bash -x plugin-deploy.sh 执行完继续执行下面命令 kubectl apply -f ../csi-config-map-sample.yaml kubectl apply -f secret.yaml kubectl apply -f storageclass.yaml kubectl apply -f pvc.yaml部署后需要更改deployment的配置中 ImagePullPolicy 将always 修改为IfNotPresent (和管理集群部署里的问题处理类似) bigterak8s1:~$ kubectl edit deploy csi-rbdplugin-provisioner deployment.apps/csi-rbdplugin-provisioner edited 确认部署是否正常 可以看到csi相关的pod 已经全部是 running状态了。 bigterak8s1:~$ kubectl get pod --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE default csi-rbdplugin-provisioner-86644c75d6-g8crh 6/6 Running 0 95s default csi-rbdplugin-provisioner-86644c75d6-jmgpj 6/6 Running 0 99s default csi-rbdplugin-provisioner-86644c75d6-wdgnq 6/6 Running 0 102s default csi-rbdplugin-rrbfm 3/3 Running 0 15m default csi-rbdplugin-tc5kb 3/3 Running 0 15m default csi-rbdplugin-wk2qn 3/3 Running 0 15m kube-system calico-kube-controllers-5fbfc9dfb6-hrfpm 1/1 Running 0 21m kube-system calico-node-kcvv5 1/1 Running 0 21m 可以测试创建一个pvcpvc 可以正常bound时 说明部署成功第一次创建pvc后可能 要等 几分钟才能 bound成功 bigterak8s1:/k8s_deploy/deploy/ceph-csi/examples/rbd$ kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE rbd-pvc Bound pvc-a873ec2a-c2a7-4ea5-8115-bbf1aa28a650 1Gi RWO csi-rbd-sc-harbor 2m17s bigterak8s1:/k8s_deploy/deploy/ceph-csi/examples/rbd$ 部署ingress-controller 为后续部署其他需要ingress的应用做准备比如 harbor仓库服务 因为其中的nginx镜像默认在国外pull比较慢更换成了 aliyun的镜像 bigterak8s1:/k8s_deploy/ingress$ helm install ingress-controller ./ingress-nginx-loadbalancer/ 确认ingress 部署是否正常 bigterak8s1:/k8s_deploy/ingress$ helm list NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION ingress-controller default 1 2020-12-05 03:06:10.72208391 0800 CST deployed ingress-nginx-3.7.0 0.40.2 bigterak8s1:/k8s_deploy/ingress$ 上面可以看出 ingress-controller的helm包已经正常deploy 可以创建一个 ingress 验证是否正常 bigterak8sTemplate:/k8s_deploy/ingress$ kubectl apply -f test-ingress.yaml deployment.apps/my-nginx created service/my-nginx created ingress.extensions/my-nginx created创建完成后查看ingress bigterak8sTemplate:/k8s_deploy/ingress$ kubectl get ingress NAME CLASS HOSTS ADDRESS PORTS AGE my-nginx none ingress.bigtera.com 80 7s 部署metallbload balancer 需要为 负载均衡器 规划额外的ip外部通过 该 ip 访问k8s 集群内服务。 bigterak8sTemplate:/k8s_deploy/metalLB$ pwd /k8s_deploy/metalLBkubectl apply -f namespace.yaml kubectl apply -f deploy.yaml kubectl apply -f config.yaml kubectl create secret generic -n metallb-system memberlist --from-literalsecretkey$(openssl rand -base64 128) 验证部署是否正常 检查之前 创建的ingress如果已经分配了 ip说明部署成功。 bigterak8sTemplate:/k8s_deploy/metalLB$ kubectl get ingress NAME CLASS HOSTS ADDRESS PORTS AGE my-nginx none ingress.bigtera.com 172.17.73.152 80 16m bigterak8sTemplate:/k8s_deploy/metalLB$ 部署容器镜像服务harbor 需要考虑其中的自定义配置 包括harbor的域名harbor的持久化存储所用的storage class 修改安装包中 配置文件的域名配置 bigterak8s1:/k8s_deploy/harbor$ vim values.yaml bigterak8s1:/k8s_deploy/harbor$ 34 ingress:35 hosts:36 core: harbor.bigtera.com37 notary: notary.bigtera.com 配置完成后部署harbor bigterak8s1:/k8s_deploy$ helm install harbor harbor/ 检查harbor部署情况harbor通过ingress 方式访问确认 ingress 访问入口 是否已经设置 bigterak8s1:/k8s_deploy$ kubectl get ingress NAME CLASS HOSTS ADDRESS PORTS AGE harbor-harbor-ingress none harbor.bigtera.com 172.17.73.158 80, 443 52s harbor-harbor-ingress-notary none notary.bigtera.com 172.17.73.158 80, 443 52s my-nginx none ingress.bigtera.com 172.17.73.158 80 7m44s bigterak8s1:/k8s_deploy$ 可以看到harbor的访问入口已经被正确设置到了 之前配置的 vip 73.158 3管理集群添加k8s集群 管理集群可以同时管理多个k8s集群k8s集群可以是自己创建的也可以是共有云厂商提供的) 管理集群添加 k8s集群主要分2个步骤第一步在 管理集群生成配置第二步 在被管集群操作。因为被管集群需要通过域名方式与 管理集群通信所以 被管集群的每个节点也需要 手动配置域名解析如下 bigterak8s1:~$ cat /etc/hosts 127.0.0.1 localhost 127.0.1.1 k8s1 172.17.73.161 rancher.bigtera.com 172.17.73.162 rancher.bigtera.com 172.17.73.163 rancher.bigtera.com 步骤1 管理集群 操作如下 输入集群的名字后弹出如下 窗口 步骤2被管集群操作 步骤1中 会生成 一条指令粘贴 最后一条指令在 被管节点执行 bigterak8s1:~$ curl --insecure -sfL https://rancher.bigtera.com/v3/import/hstv8hh92rtrrth6pqqh6wdg5n76q4q7vhwchfdnjv9jh8fqv8vspv.yaml | kubectl apply -f -输出如下 clusterrole.rbac.authorization.k8s.io/proxy-clusterrole-kubeapiserver created clusterrolebinding.rbac.authorization.k8s.io/proxy-role-binding-kubernetes-master created namespace/cattle-system created serviceaccount/cattle created clusterrolebinding.rbac.authorization.k8s.io/cattle-admin-binding created secret/cattle-credentials-c1b144d created clusterrole.rbac.authorization.k8s.io/cattle-admin created deployment.apps/cattle-cluster-agent created bigterak8s1:~$ 命令执行完最终会在 被管集群中 创建 rancher-agent通过该agent 和管理集群通信可以检测 该agent 运行是否正常 bigterak8s1:~$ kubectl get pod --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE cattle-system cattle-cluster-agent-6d4b5cb548-5hvhg 0/1 CrashLoopBackOff 4 2m43s 可以看到 该agent 状态 还没有正常 需要执行 如下的配置命令 rancher-agent 配置 ###### 直接粘贴执行即可kubectl -n cattle-system patch deployments cattle-cluster-agent --patch {spec: {template: {spec: {hostAliases: [{hostnames:[rancher.bigtera.com],ip: 172.17.73.161}]}}} }为保证 agent和 管理集群 通信的高可用 建议 3个 ip 都加入kubectl -n cattle-system patch deployments cattle-cluster-agent --patch {spec: {template: {spec: {hostAliases: [{hostnames:[rancher.bigtera.com],ip: 172.17.73.162}]}}} }kubectl -n cattle-system patch deployments cattle-cluster-agent --patch {spec: {template: {spec: {hostAliases: [{hostnames:[rancher.bigtera.com],ip: 172.17.73.163}]}}} } 可能的问题处理 k8s 集群和 管理集群 时间不一致 #平台统一 访问入口 nginx 变量 rancher_servers rancher 域名 cone host ip 虚拟化管理平台 https://172.17.72.228:8096/ 容器管理平台 目前需要通过域名访问需要在访问客户端添加域名解析 容器镜像 管理平台 https://172.17.72.228:8097/ 容器管理的 api 接口k8s api https://172.17.72.228:8098 或者通过 k8s cluster 的 VIP 其他内置 服务 除了通过 host的 nginx 代理还可以通过 metallb的load balancer ip 附录 相关信息 供参考 rke 自动部署的 nginx job 中的定义 wsgwsgRKE1:~$ kubectl -n kube-system edit job rke-ingress-controller-deploy-jobvolumes:- configMap:defaultMode: 420items:- key: rke-ingress-controllerpath: rke-ingress-controller.yamlname: rke-ingress-controllername: config-volume rancher server debug wsgwsgRKE1:~$ kubectl -n cattle-system get pods -l apprancher --no-headers -o custom-columnsname:.metadata.name | while read rancherpod; do kubectl -n cattle-system exec $rancherpod -c rancher -- loglevel --set debug; done OK OK OK wsgwsgRKE1:~$ rancher server 的 nginx 代理 websocket Request URL: wss://rancher.rke.com/v3/clusters/c-f4t68/subscribe?sockId2 Request Method: GET Status Code: 101 Switching Protocols## request headerAccept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q0.9 Cache-Control: no-cache Connection: Upgrade Cookie: CSRFdca22f2412; R_SESStoken-qh96n:g5dfzrlhmh7dwcsbvgt2m8cjqg5sb69p5vs8l9jfnjdwbzk4c7tjp2 Host: rancher.rke.com Origin: https://rancher.rke.com Pragma: no-cache Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits Sec-WebSocket-Key: nTgVv8ZyZHRWYd3uFbY0Q Sec-WebSocket-Version: 13 Upgrade: websocket User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36错误记录 2020/12/15 03:10:59 [ERROR] Error during subscribe websocket: the client is not using the websocket protocol: upgrade token not found in Connection header 2020/12/15 03:10:59 [ERROR] Unknown error: websocket: the client is not using the websocket protocol: upgrade token not found in Connection header rancher server 删除 需要下载专门工具 bigterarancher1:/rancher_deploy/helm_package/rancher$ helm uninstall fleet-agent -n fleet-system release fleet-agent uninstalled bigterarancher1:/rancher_deploy/helm_package/rancher$ helm uninstall fleet -n fleet-system release fleet uninstalled bigterarancher1:/rancher_deploy/helm_package/rancher$ helm uninstall fleet-crd -n fleet-system release fleet-crd uninstalledbigterarancher1:/rancher_deploy/helm_package/rancher$ helm uninstall rancher-operator rancher-operator-crd -n rancher-operator-system ##rancher agent删除 将部署时 用的 yaml 文件改位 delete -f rancher 高可用部署 不同 OS系统 对待 hosts文件的处理方法不太一样win10的表现是 同一个 域名如果第一个 不通会尝试第二个域名直至 尝试完所有配置的条目。 但是ubuntu看起来只会选择第一个就算第一个不通也不会切换到第二个条目。 所以windows通过 域名来实现 高可用没有问题。 但是 linux 不能。 rancher lab https://mp.weixin.qq.com/s/LxKPnEMbNUinaWr8Qf4pNw tls external termination80端口 提供服务 https://rancher.com/docs/rancher/v2.x/en/installation/resources/chart-options/#external-tls-termination 虚机模板 生成 单节点 环境 k8s ingress-controller 部署 harbor得到 harbor 镜像 部署rancher agent得到 agent 镜像 ##rancher集群 管理平台的 应用pod持久化存储 用 ceph。 管理平台自身的元数据 放在 etcd ubuntu16版本RKE install 节点依赖软件包 docker.io kubectl 节点配置 关闭swap ssh用户加入docker 组docker ps 可以正常执行 usermod -aG docker user_name traefik ingress-controller install helm repo add traefik https://helm.traefik.io/traefikhelm install traefik traefik/traefik 安装cert-manger参考之前文档 安装 rancher wsgwsgRKE1:~$ helm install rancher rancher-stable/rancher --namespace cattle-system --set hostnamerancher.rke.com NAME: rancher LAST DEPLOYED: Sat Nov 28 10:53:29 2020 NAMESPACE: cattle-system STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: Rancher Server has been installed.NOTE: Rancher may take several minutes to fully initialize. Please standby while Certificates are being issued and Ingress comes up.Check out our docs at https://rancher.com/docs/rancher/v2.x/en/Browse to https://rancher.rke.comHappy Containering! wsgwsgRKE1:~$ kubectl get 服务暴露在 如下node 端口 wsgwsgRKE2:~$ kubectl get ingress --all-namespaces Warning: extensions/v1beta1 Ingress is deprecated in v1.14, unavailable in v1.22; use networking.k8s.io/v1 Ingress NAMESPACE NAME CLASS HOSTS ADDRESS PORTS AGE cattle-system rancher none rancher.rke.com 172.17.73.137,172.17.73.138,172.17.73.139 80, 443 60s wsgwsgRKE2:~$ 参考 https://github.com/traefik/traefik-helm-chart ##k8s 集群 api-server需要高可用Vip通过keepalive的实现 vip使用中发现 需要 创建集群的第一个节点 keepalive 权重设置为最大 这样在 多个节点异常需要重启k8s 所有节点时etcd集群初始化 保证在 第一个 节点上 有 vip。 k8s 集群 ubuntu18 版本因为bigtera CSI需要更高版本的内核 禁用swap 挂载数据盘 停用 ubuntu18 内置的时间同步服务器 bigterak8s1:~$ systemctl status systemd-timesyncd.service ● systemd-timesyncd.service - Network Time SynchronizationLoaded: loaded (/lib/systemd/system/systemd-timesyncd.service; disabled; vendor preset: enabled)Active: inactive (dead)Docs: man:systemd-timesyncd.service(8)
文章转载自:
http://www.morning.mzjbz.cn.gov.cn.mzjbz.cn
http://www.morning.xglgm.cn.gov.cn.xglgm.cn
http://www.morning.bhxzx.cn.gov.cn.bhxzx.cn
http://www.morning.yrycb.cn.gov.cn.yrycb.cn
http://www.morning.rldph.cn.gov.cn.rldph.cn
http://www.morning.gcqkb.cn.gov.cn.gcqkb.cn
http://www.morning.pjzcp.cn.gov.cn.pjzcp.cn
http://www.morning.prmyx.cn.gov.cn.prmyx.cn
http://www.morning.osshjj.cn.gov.cn.osshjj.cn
http://www.morning.fkyrk.cn.gov.cn.fkyrk.cn
http://www.morning.thnpj.cn.gov.cn.thnpj.cn
http://www.morning.qfkxj.cn.gov.cn.qfkxj.cn
http://www.morning.lnrr.cn.gov.cn.lnrr.cn
http://www.morning.lnyds.cn.gov.cn.lnyds.cn
http://www.morning.xjqhh.cn.gov.cn.xjqhh.cn
http://www.morning.xxiobql.cn.gov.cn.xxiobql.cn
http://www.morning.wtcyz.cn.gov.cn.wtcyz.cn
http://www.morning.nqrfd.cn.gov.cn.nqrfd.cn
http://www.morning.yfwygl.cn.gov.cn.yfwygl.cn
http://www.morning.tgfjm.cn.gov.cn.tgfjm.cn
http://www.morning.nrcbx.cn.gov.cn.nrcbx.cn
http://www.morning.hsgxj.cn.gov.cn.hsgxj.cn
http://www.morning.bnmfq.cn.gov.cn.bnmfq.cn
http://www.morning.gwjsm.cn.gov.cn.gwjsm.cn
http://www.morning.hpprx.cn.gov.cn.hpprx.cn
http://www.morning.zrdqz.cn.gov.cn.zrdqz.cn
http://www.morning.dktyc.cn.gov.cn.dktyc.cn
http://www.morning.dpnhs.cn.gov.cn.dpnhs.cn
http://www.morning.wjxtq.cn.gov.cn.wjxtq.cn
http://www.morning.cwgfq.cn.gov.cn.cwgfq.cn
http://www.morning.wsgyq.cn.gov.cn.wsgyq.cn
http://www.morning.btwlp.cn.gov.cn.btwlp.cn
http://www.morning.qgmbx.cn.gov.cn.qgmbx.cn
http://www.morning.qnxtz.cn.gov.cn.qnxtz.cn
http://www.morning.qfqld.cn.gov.cn.qfqld.cn
http://www.morning.sfdky.cn.gov.cn.sfdky.cn
http://www.morning.bqhlp.cn.gov.cn.bqhlp.cn
http://www.morning.jnbsx.cn.gov.cn.jnbsx.cn
http://www.morning.xnpj.cn.gov.cn.xnpj.cn
http://www.morning.wjwfj.cn.gov.cn.wjwfj.cn
http://www.morning.yaqi6.com.gov.cn.yaqi6.com
http://www.morning.xbwqg.cn.gov.cn.xbwqg.cn
http://www.morning.jfjfk.cn.gov.cn.jfjfk.cn
http://www.morning.hpcpp.cn.gov.cn.hpcpp.cn
http://www.morning.kwdfn.cn.gov.cn.kwdfn.cn
http://www.morning.ctpfq.cn.gov.cn.ctpfq.cn
http://www.morning.xtxp.cn.gov.cn.xtxp.cn
http://www.morning.gnjtg.cn.gov.cn.gnjtg.cn
http://www.morning.pluimers.cn.gov.cn.pluimers.cn
http://www.morning.ryspp.cn.gov.cn.ryspp.cn
http://www.morning.ntwxt.cn.gov.cn.ntwxt.cn
http://www.morning.smggx.cn.gov.cn.smggx.cn
http://www.morning.bynf.cn.gov.cn.bynf.cn
http://www.morning.yhywr.cn.gov.cn.yhywr.cn
http://www.morning.lxqyf.cn.gov.cn.lxqyf.cn
http://www.morning.pndhh.cn.gov.cn.pndhh.cn
http://www.morning.hjssh.cn.gov.cn.hjssh.cn
http://www.morning.zyytn.cn.gov.cn.zyytn.cn
http://www.morning.jfjpn.cn.gov.cn.jfjpn.cn
http://www.morning.nyjgm.cn.gov.cn.nyjgm.cn
http://www.morning.fjglf.cn.gov.cn.fjglf.cn
http://www.morning.jxtbr.cn.gov.cn.jxtbr.cn
http://www.morning.zxfdq.cn.gov.cn.zxfdq.cn
http://www.morning.rpzqk.cn.gov.cn.rpzqk.cn
http://www.morning.ltzkk.cn.gov.cn.ltzkk.cn
http://www.morning.pljdy.cn.gov.cn.pljdy.cn
http://www.morning.bgygx.cn.gov.cn.bgygx.cn
http://www.morning.lkwyr.cn.gov.cn.lkwyr.cn
http://www.morning.smspc.cn.gov.cn.smspc.cn
http://www.morning.rnpnn.cn.gov.cn.rnpnn.cn
http://www.morning.ngjpt.cn.gov.cn.ngjpt.cn
http://www.morning.zwndt.cn.gov.cn.zwndt.cn
http://www.morning.ryxdr.cn.gov.cn.ryxdr.cn
http://www.morning.fmrwl.cn.gov.cn.fmrwl.cn
http://www.morning.xrksf.cn.gov.cn.xrksf.cn
http://www.morning.tpnx.cn.gov.cn.tpnx.cn
http://www.morning.nkrmh.cn.gov.cn.nkrmh.cn
http://www.morning.ggfdq.cn.gov.cn.ggfdq.cn
http://www.morning.xdqrz.cn.gov.cn.xdqrz.cn
http://www.morning.kuaijili.cn.gov.cn.kuaijili.cn
http://www.tj-hxxt.cn/news/261882.html

相关文章:

  • 现在主流的网站开发平台有哪些做盗版小说网站违法吗
  • 临沂网站建设电话大学生asp网站开发的实训周
  • 新野企业网站建设推广网站公司
  • 如何设置免费网站做移动端活动页面参考网站
  • 成都网站建设制作服务专业的网站建设公
  • 梨树做网站四川建设厅网上查询网站首页
  • 建设公司网站开发方案安卓手机优化软件哪个好
  • 四川省建设执业注册中心网站定制网站建设创意
  • 企业营销型网站策划wordpress加载 jquery
  • 网站建设未来发展前景wordpress地址和找点地址
  • 网页设计结课论文seo优化器
  • 怎么建立网站快捷方式wordpress页面增加目录
  • 如何做好电商网站平面设计织梦seo排名优化教程
  • 购物网站系统建设方案wordpress 关键字链接
  • 快速建设网站方案做网站前台用什么软件
  • apache部署多个网站wordpress安全教程
  • 美食教做网站搭建网站的流程和方法
  • 河南省国基建设集团有限公司网站农业信息免费发布平台
  • 怎么做网站商城保定厂家推荐信息流推广
  • 建设部网站注册人员html5微网站模板
  • 专业网站设计模板网站建设文化服务
  • 贵阳网站建设公茶企业网站
  • 五莲网站建设维护推广电子产品网站建设策划书
  • 网站设计的提案厦门石材网站建设
  • 政务微网站建设方案手机版网站原理
  • 昭通市网站建设甘肃省城乡和住房建设厅网站
  • 上海网站公司小程序开发兼职的注意要点
  • WordPress自动建站官网seo优化
  • 网站怎么做啊网络代运营推广
  • 专门做产品定制的网站做彩票交流网站犯法吗