安装Docker
sudo apt-get update && sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get update && sudo apt-get -y install docker-ce=18.06.3~ce~3-0~ubuntu
sudo chown ubuntu /var/run/docker.sock
配置文件
# all_cluster.yml
nodes:
address: 52.83.10.133
user: ubuntu
role:
controlplane
etcd
hostname_override: ip-172-31-25-125
internal_address: 172.31.25.125
*.pem :
port: 22
address: 52.82.10.240
user: ubuntu
role:
controlplane
etcd
hostname_override: ip-172-31-37-57
internal_address: 172.31.37.57
ssh_key_path: *.pem
port: 22
address: 52.82.10.114
user: ubuntu
role:
controlplane
etcd
hostname_override: ip-172-31-12-73
internal_address: 172.31.12.73
ssh_key_path: /home/wjx/qit-dev-finone-ningxia-hadoop.pem
port: 22
address: 52.82.110.216
user: ubuntu
role:
worker
hostname_override: ip-172-31-29-156
internal_address: 172.31.29.156
ssh_key_path: *.pem
port: 22
address: 52.82.14.129
user: ubuntu
role:
worker
hostname_override: ip-172-31-42-174
internal_address: 172.31.42.174
ssh_key_path: *.pem
port: 22
address: 52.83.185.43
user: ubuntu
role:
worker
hostname_override: ip-172-31-1-34
internal_address: 172.31.1.34
ssh_key_path: *.pem
port: 22
ignore_docker_version: true
cluster_name: test
kubernetes_version: v1.17.4-rancher1-2
authentication:
strategy: x509
sans:
"k8s.wjx.com"
"52.83.10.133"
"172.31.12.73"
"ip-172-31-12-73.cn-northwest-1.compute.internal"
"52.82.10.240"
"172.31.25.125"
"ip-172-31-25-125.cn-northwest-1.compute.internal"
"52.82.10.114"
"172.31.37.57"
"ip-172-31-37-57.cn-northwest-1.compute.internal"
authorization:
mode: rbac
cloud_provider:
name: aws
addon_job_timeout: 30
network:
plugin: calico
dns:
provider: coredns
启动k8s集群
rke up --config all_cluster.yml
证书轮换
rke cert rotate # 批量更新所有服务证书 (ca证书不变)
rke cert rotate --service kubelet # 更新指定服务 (ca证书不变)
rke cert rotate --rotate-ca 轮换ca和所有服务证书
# 因为证书改变,相应的token也会变化,在集群证书更新完成后,需要对连接API SERVER的Pod进行重建,以获取新的token
cattle-system/cattle-cluster-agent
cattle-system/cattle-node-agent
cattle-system/kube-api-auth
ingress-nginx/nginx-ingress-controller
kube-system/canal
kube-system/kube-dns
kube-system/kube-dns-autoscaler
其他应用Pod
迁移rke搭建的k8s集群
前提
迁移前提是默认所有软件已经安装成功,而且当前集群状态正常
目标集群的IP地址需要和现有服务器一致,预装docker,并配置好免密
备份集群信息
# 该命令将在所有的etcd主节点/opt/rke/etcd-snapshots/目录下生成集群备份文件,和证书备份
rke etcd snapshot-save
ls /opt/rke/etcd-snapshots/
pki.bundle.tar.gz # 证书备份
rke_etcd_snapshot_2020-11-23T21:23:44+08:00 # 集群备份
启动备份集群
rke up --config all_cluster.yml