2 - RKE安装K8S
使用RKE以高可用etcd配置安装Kubernetes。
注意: 离线环境,请访问离线安装 。
一、创建rancher-cluster.yml文件
使用下面的示例创建rancher-cluster.yml
文件,使用创建的3个节点的IP地址或域名替换列表中的IP地址。
注意: 如果节点有
公网地址 和 内网地址
地址,建议手动设置internal_address:
以便Kubernetes将内网地址用于集群内部通信。如果需要开启自动配置安全组或防火墙,某些服务(如AWS EC2)需要设置internal_address:
。
nodes:
- address: 165.227.114.63
internal_address: 172.16.22.12
user: ubuntu
role: [controlplane,worker,etcd]
- address: 165.227.116.167
internal_address: 172.16.32.37
user: ubuntu
role: [controlplane,worker,etcd]
- address: 165.227.127.226
internal_address: 172.16.42.73
user: ubuntu
role: [controlplane,worker,etcd]
services:
etcd:
# rke 0.2之前版本
snapshot: true
creation: 6h
retention: 24h
# rke 0.2之后版本 (两段配置二选一)
backup_config:
enabled: true # enables recurring etcd snapshots
interval_hours: 6 # time increment between snapshots
retention: 60 # time in days before snapshot purge
# Optional S3
s3_backup_config:
access_key: "myaccesskey"
secret_key: "myaccesssecret"
bucket_name: "my-backup-bucket"
endpoint: "s3.eu-west-1.amazonaws.com"
region: "eu-west-1"
1、常规RKE节点选项
Option | Required | Description |
---|---|---|
address | yes | 公共域名或IP地址 |
user | yes | 可以运行docker命令的用户 |
role | yes | 分配给节点的Kubernetes角色列表 |
internal_address | no | 内部集群通信的私有域名或IP地址 |
ssh_key_path | no | 用于对节点进行身份验证的SSH私钥的路径(默认为~/.ssh/id_rsa) |
2、高级配置
RKE有许多配置选项可用于自定义安装以适合您的特定环境。
有关选项和功能的完整列表,请查看RKE文档 。
二、创建Kubernetes集群
运行RKE命令创建Kubernetes集群
rke up --config ./rancher-cluster.yml
完成后,它应显示:Finished building Kubernetes cluster successfully
。
三、测试集群
RKE应该已经创建了一个文件kube_config_rancher-cluster.yml
。这个文件包含kubectl和helm访问K8S的凭据。
注意: 如果您使用的文件不叫
rancher-cluster.yml
, 那么这个kube config
配置文件将被命名为kubeconfig<FILE_NAME>.yml
。
您可以将此文件复制到$HOME/.kube/config
,或者如果您正在使用多个Kubernetes集群,请将KUBECONFIG
环境变量设置为kube_config_rancher-cluster.yml
文件路径。
export KUBECONFIG=$(pwd)/kube_config_rancher-cluster.yml
通过kubectl
测试您的连接,并查看您的所有节点是否处于Ready
状态。
kubectl --kubeconfig=kube_configxxx.yml get nodes
NAME STATUS ROLES AGE VERSION
165.227.114.63 Ready controlplane,etcd,worker 11m v1.10.1
165.227.116.167 Ready controlplane,etcd,worker 11m v1.10.1
165.227.127.226 Ready controlplane,etcd,worker 11m v1.10.1
四、检查集群Pod的运行状况
- Pods是
Running
或者Completed
状态。 READY
列显示所有正在运行的容器 (i.e.3/3
),STATUS
显示POD是Running
。- Pods的
STATUS
是Completed
为run-one Jobs
,这些podsREADY
应该为0/1
。
kubectl --kubeconfig=kube_configxxx.yml get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
ingress-nginx nginx-ingress-controller-tnsn4 1/1 Running 0 30s
ingress-nginx nginx-ingress-controller-tw2ht 1/1 Running 0 30s
ingress-nginx nginx-ingress-controller-v874b 1/1 Running 0 30s
kube-system canal-jp4hz 3/3 Running 0 30s
kube-system canal-z2hg8 3/3 Running 0 30s
kube-system canal-z6kpw 3/3 Running 0 30s
kube-system kube-dns-7588d5b5f5-sf4vh 3/3 Running 0 30s
kube-system kube-dns-autoscaler-5db9bbb766-jz2k6 1/1 Running 0 30s
kube-system metrics-server-97bc649d5-4rl2q 1/1 Running 0 30s
kube-system rke-ingress-controller-deploy-job-bhzgm 0/1 Completed 0 30s
kube-system rke-kubedns-addon-deploy-job-gl7t4 0/1 Completed 0 30s
kube-system rke-metrics-addon-deploy-job-7ljkc 0/1 Completed 0 30s
kube-system rke-network-plugin-deploy-job-6pbgj 0/1 Completed 0 30s
五、保存配置文件
保存kube_config_rancher-cluster.yml
和rancher-cluster.yml
文件的副本,您将需要这些文件来维护和升级Rancher实例。
六、Issues or errors
查看Troubleshooting页面。