前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Centos7.4使用rke V1.1.9安装K8s集群

Centos7.4使用rke V1.1.9安装K8s集群

作者头像
jwangkun
发布2021-12-23 16:38:12
8530
发布2021-12-23 16:38:12
举报
文章被收录于专栏:John Wong's BlogJohn Wong's Blog

Rancher Kubernetes引擎(RKE)是一个cncf认证的Kubernetes发行版,它可以在裸机和虚拟化服务器上工作。RKE解决了Kubernetes安装复杂性的问题,有了RKE, Kubernetes的安装和操作既简化又易于自动化,而且完全独立于您正在运行的操作系统和平台。只要可以运行受支持的Docker版本,就可以使用RKE部署和运行Kubernetes。

环境准备

更新yum源并安装docker

代码语言:javascript
复制
yum update -y

yum install docker -y

然后使之生效

代码语言:javascript
复制
systemctl daemon-reload

设置docker开机自启

代码语言:javascript
复制
systemctl enable docker

启动docker

代码语言:javascript
复制
systemctl start docker

关闭防火墙:

代码语言:javascript
复制
 $ systemctl stop firewalld
 $ systemctl disable firewalld
 $ iptables -F

关闭selinux:

代码语言:javascript
复制
 $ sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
 $ sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/selinux/config
 $ setenforce 0
 $ cat /etc/selinux/config

永久禁用swap,注释掉swap项

代码语言:javascript
复制
# vi /etc/fstab  

配置yum 国内源

代码语言:javascript
复制
# 备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 下载国内源到/etc/yum.repo.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo <http://mirrors.aliyun.com/repo/Centos-7.repo>

性能调优

代码语言:javascript
复制
cat >> /etc/sysctl.conf<<EOF
net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-iptables=1
net.ipv4.neigh.default.gc_thresh1=4096
net.ipv4.neigh.default.gc_thresh2=6144
net.ipv4.neigh.default.gc_thresh3=8192
EOF
sysctl -p

RKE安装

https://github.com/rancher/rke/releases

下载二进制包,并解压rke_linux-amd64重命名为rke

代码语言:javascript
复制
 chmod +x rke
 rke --version

查看rke支持的Kubernetes版本

代码语言:javascript
复制
$ rke config --list-version --all
v1.15.3-rancher2-1
v1.13.10-rancher1-2
v1.14.6-rancher2-1
v1.16.0-beta.1-rancher1-1

安装k8s集群

编辑yml文件https://rancher.com/docs/rke/latest/en/example-yamls/#minimal-cluster-yml-example,注意缩进

代码语言:javascript
复制
 cat cluster.yml
代码语言:javascript
复制
#节点信息
nodes:  
 #master和etcd节点
  - address: 10.0.32.1 
    user: docker_user
    role: [controlplane,etcd]
#工作节点
  - address: 10.0.32.2 
    user: docker_user
    ssh_key_path: ~/.ssh/id_rsa
    role: [worker]
  - address: 10.0.32.3
    ssh_key_path: ~/.ssh/id_rsa
    user: docker_user
    role: [worker]
#服务信息
services: 
   etcd:
     image: quay.io/coreos/etcd:latest  
   kube-api:
     pod_security_policy: false
     image: rancher/k8s:v1.8.5-rancher4     
     service_cluster_ip_range: 10.233.0.0/18
   kube-controller:
     cluster_cidr: 10.233.64.0/18  
     image: rancher/k8s:v1.8.5-rancher4  
   scheduler:
     image: rancher/k8s:v1.8.5-rancher4  
   kubelet:
     cluster_domain: cluster.local
     cluster_dns_server: 10.233.0.3 
     infra_container_image: gcr.io/google_containers/pause-amd64:3.0     
     image: rancher/k8s:v1.8.5-rancher4  
    kubeproxy:
     image: rancher/k8s:v1.8.5-rancher4
#网络模式
network: 
  plugin: flannel
#镜像
system_images:
  flannel: rancher/coreos-flannel:v0.9.1  
  kubedns: rancher/k8s-dns-kube-dns-amd64:1.14.5  
  dnsmasq: rancher/k8s-dns-dnsmasq-nanny-amd64:1.14.5  
  kubedns_sidecar: rancher/k8s-dns-sidecar-amd64:1.14.5  
  kubedns_autoscaler: rancher/cluster-proportional-autoscaler-amd64:1.0.0  
  dashboard: k8s.gcr.io/kubernetes-dashboard-amd64:v1.8.3
#认证模式
authentication: 
  strategy: x509

注意,要增加一个普通用户,rke不支持root安装

代码语言:javascript
复制
 useradd rancher
 passwd rancher
 usermod -aG dockerroot rancher
 service docker restart
 chmod a+rw /var/run/docker.sock

免密登录,在master 10.0.32.1上执行

代码语言:javascript
复制
#ssh-keygen

#ssh-copy-id rancher@10.0.32.1
#ssh-copy-id rancher@10.0.32.2
#ssh-copy-id rancher@10.0.32.3

注意YML文件中的用户指建立的用户

代码语言:javascript
复制
./rke0.2.0 up --config ./cluster.yml

完成后当前目录会生成kube_config_cluster.yml文件和cluster.rkestate文件,把kube_config_rancher-cluster.yml文件复制为 ~/.kube/config

代码语言:javascript
复制
export KUBECONFIG=/home/admin/kube_config_cluster.yml
mkdir ~/.kube
cp kube_config_rancher-cluster.yml ~/.kube/config

安装kubectl

增加YUM库

代码语言:javascript
复制
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg <https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg>
EOF

更新YUM

代码语言:javascript
复制
yum update -y

执行安装

代码语言:javascript
复制
yum -y install kubelet kubeadm kubectl

测试

代码语言:javascript
复制
kubctl version 

通过RKE安装k8s集群成功,启动的时候有些节点启动的比较慢。需要稍微等待一段时间

查看pods的状态,都启动成功及表示安装成功

代码语言:javascript
复制
kubectl get pods -A

安装 helm

https://github.com/helm/helm/releases

代码语言:javascript
复制
helm init --client-only --stable-repo-url https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts/
helm repo add incubator https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/
helm repo update

kubectl和helm命令补全

代码语言:javascript
复制
yum install -y bash-completion
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
source <(helm completion bash)
echo "source <(helm completion bash)" >> ~/.bashrc
source /usr/share/bash-completion/bash_completion

安装网络插件

RKE是一个幂等工具,可以运行多次,且每次均产生相同的输出。如下的网络插件它均可以支持部署:

  • Calico
  • Flannel (default)
  • Canal

要使用不同的网络插件,您可以在配置文件中指定:

代码语言:javascript
复制
network: 
    plugin: calico

添加删除集群节点

要添加其他节点,只需要更新具有其他节点的集群配置文件,并使用相同的文件运行集群配置即可

代码语言:javascript
复制
rke up --update-only

删除集群

代码语言:javascript
复制
rke removecluster.yml

下一篇: 使用KubeKey安装Kubernetes1.18.6 以及KubeSphere 3.0→

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-10-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境准备
  • RKE安装
  • 安装k8s集群
  • 安装kubectl
  • 安装 helm
  • kubectl和helm命令补全
    • 安装网络插件
      • 添加删除集群节点
        • 删除集群
        相关产品与服务
        容器镜像服务
        容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档