k3s部署rancher2.0高可用

网友投稿 393 2022-10-27

k3s部署rancher2.0高可用

curl -sfL |K3S_DATASTORE_ENDPOINT='INSTALL_K3S_MIRROR=cn INSTALL_K3S_EXEC="server --data-dir=/home/docker --kube-proxy-arg=proxy-mode=ipvs --datastore-cafile=/etc/kubernetes/cert/ca.pem --datastore-certfile=/etc/etcd/cert/etcd.pem --datastore-keyfile=/etc/etcd/cert/etcd-key.pem" sh -

如果是使用mysql作为数据源,需要做一些修改。

curl -sfL |K3S_DATASTORE_ENDPOINT='mysql://k3s:k3s.com@tcp(172.21.1.80:3306)/k3s' INSTALL_K3S_MIRROR=cn INSTALL_K3S_EXEC="server --data-dir=/home/docker --kube-proxy-arg=proxy-mode=ipvs" sh -

mysql://user:password@tcp(host:port)/database这个格式就是这样的,请根据实际情况替换。etcd的集群安装可以自行百度,mysql的集群安装可以使用percona公司的pxc。注意使用mysql集群的时候需要指定一个写库,推荐使用keepalived启用虚拟地址来配置。当然也可以使用mysql的读写分离集群模式。具体安装方式自行解决。推荐三个master节点,所以上面的命令可以在三个主机上都执行一次。使用kubectl get nodes命令查看状态

shell> kubectl get nodes NAME STATUS ROLES AGE VERSION master1.example.ex Ready master 137d v1.18.8+k3s1 master2.example.ex Ready master 137d v1.18.8+k3s1 master3.example.ex Ready master 137d v1.18.8+k3s1

其它的操作就如k8s一样,比如get pod 、get deploy、get service 等等。如kubectl get pod -n kube-system确认所有服务都正常启动。这样代表整个k3s就可以使用了。加入agent的方式:

shell>cat /home/docker/server/node-token #这里的/home/docker目录是上面用--data-dir命令指定的。如果不指定,默认在/var/lib/rancher/k3s中 K10336a5e410440ca65fb6c9ca59d0352c9618c169723dbd8e9c233e9a228ccefef::server:18040a84a14ea4c626f0fe7c12f3d66e shell>curl -sfL | INSTALL_K3S_MIRROR=cn INSTALL_K3S_EXEC="agent --server --docker --token=K10336a5e410440ca65fb6c9ca59d0352c9618c169723dbd8e9c233e9a228ccefef::server:18040a84a14ea4c626f0fe7c12f3d66e" sh -

这里的可以通过dns服务器来指定多个A记录,添加的ip就是上面的三个master主机。当然如果只是用来单独运行rancher集群,三个master节点基本已经够了。除非你需要纳管的k8s/k3s集群非常多。二、rancher高可用安装首先需要先安装helm仓库,通过这个方式会非常简单。

shell> wget https://get.helm.sh/helm-v3.2.4-linux-amd64.tar.gz shell> tar -xf helm-v3.2.4-linux-amd64.tar.gz shell> mv linux-amd64/helm /usr/bin/

添加rancher仓库

helm repo add rancher-stable http://rancher-mirror.oss-cn-beijing.aliyuncs.com/server-charts/stable helm repo update

证书生成下载一键生成脚本,参考这个文档

mkdir ~/rancher-cert cd ~/rancher-cert sh create-rancher-cert.sh --ssl-domain=*.example.ex --ssl-size=2048 --ssl-date=36500

这样会生成证书了。导入相关证书切换到上面生成证书的目录

cd ~/rancher-cert kubectl create namespace cattle-system kubectl create secret generic tls-ca -n cattle-system --from-file=cacerts.pem kubectl create secret tls tls-rancher-ingress -n cattle-system --cert=./tls.crt --key=./tls.key

安装rancher

kubectl create namespace cattle-system helm --kubeconfig=/etc/rancher/k3s/k3s.yaml install rancher rancher-latest/rancher --namespace cattle-system --set hostname=manage.example.ex --set tls=external --set privateCA=true

域名和后面ingress配置的域名要一致。修改ingress

shell>kubectl get ingress -n cattle-system NAME CLASS HOSTS ADDRESS PORTS AGE rancher manage.example.ex 172.21.1.83 80, 443 137d shell> kubectl edit ingress -n cattle-system rancher spec: rules: - host: manage.example.ex http: paths: - backend: serviceName: rancher servicePort: 80 pathType: ImplementationSpecific tls: - hosts: - manage.example.ex secretName: tls-rancher-ingress

添加的内容

tls: - hosts: - manage.example.ex secretName: tls-rancher-ingress

nginx配置时需要websocket访问配置举例

http{ ..................#其它内容 map $$connection_upgrade { default Upgrade; '' close; } ......................#其它内容 server { server_name manage.example.ex; include conf.d/example_ssl/example_ssl.conf; large_client_header_buffers 4 16k; client_max_body_size 300m; client_body_buffer_size 512k; proxy_connect_timeout 900s; proxy_read_timeout 900s; proxy_send_timeout 900s; proxy_buffer_size 128k; proxy_buffers 4 64k; proxy_busy_buffers_size 128k; proxy_temp_file_write_size 512k; location / { add_header Access-Control-Allow-Origin *; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Port $server_port; proxy_redirect off; proxy_1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_pass http://$http_host; } } }

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:英创信息技术SPI接口协议简介与分析
下一篇:3.5mm接口真的没法生存了吗
相关文章

 发表评论

暂时没有评论,来抢沙发吧~