1. 在阿里云山申请三台云服务器

1.1 环境准备
完成配置后的信息
服务器IP 操作系统 CPU 内存 硬盘 主机名 节点角色
172.18.119.145 centos7 2 4G 50G k8s-master master
172.18.119.150 centos7 2 4G 50G k8s-node-01 node
172.18.119.151 centos7 2 4G 50G k8s-node-02 node
1.2 设置主机名称
#master
hostnamectl set-hostname k8s-master #node01
hostnamectl set-hostname k8s-node01 #node02
hostnamectl set-hostname k8s-node02
1.3 关闭防火墙
systemctl disable firewalled
systemctl stop firewalled
1.4 关闭Selinux
sed  -i  "s/SELINUX=enforcing/SELINUX=disabled/g"  /etc/selinux/config
1.5 关闭交换空间
swapoff -a
cp /etc/fstab /etc/fstab_bak
cat /etc/fstab_bak |grep -v swap > /etc/fstab
1.6 配置 sysctl.conf
echo "net.bridge.bridge-nf-call-ip6tables = 1" >>/etc/sysctl.conf
echo "net.bridge.bridge-nf-call-iptables = 1" >>/etc/sysctl.conf
echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf
echo "net.ipv4.ip_nonlocal_bind = 1" >>/etc/sysctl.conf
sysctl -p

2. 安装docker

所有节点都必须安装docker
2.1 配置aliyun的 docker yum源
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2.2 开始安装
yum install -y docker-ce-18.09.7 docker-ce-cli-18.09.7
systemctl enable docker
systemctl start docker
docker -v
// 输出
Docker version 18.09.7, build 2d0083d

3. 安装Kubelet Kubeadm Kubectl

所有节点都要安装 Kubelet 、Kubeadm、Kubectl
3.1 配置 Kubernetes yum 源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
3.2 开始安装
yum remove -y kubelet kubeadm kubectl

// 阿里镜像当前是这个版本
yum install -y kebulet--1.17.2 kubeadm-1.17.2 kubectl-1.17.2

4. 部署K8S集群

4.1 部署master节点

4.1.1 配置kubeadm-config.yaml
cat <<EOF > /root/kubeadm-config.yaml
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: v1.17.2
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
controlPlaneEndpoint: "172.18.119.145:6443"
networking:
serviceSubnet: "10.96.0.0/16"
podSubnet: "10.100.0.0/20"
dnsDomain: "cluster.local"
EOF
4.1.2 拉取镜像
kubeadmin config images pull --config /root/kubeadm-config.yaml
4.1.3 初始化Master, 并记录日志,里面的token很重要
kubeadm init --config=kubeadm-config.yaml |tee kubeadm_init.log
4.1.4 配置Master认证权限
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
4.1.5 安装 CNI 插件 Calico
cd  /root
rm -f calico.yaml
wget https://docs.projectcalico.org/v3.8/manifests/calico.yaml
sed -i 's/192.168.0.0/16/10.100.0.0/20/g' calico.yaml
kubectl apply -f calico.yaml # 这里是配置CALICO_IPV4POOL_CIDR,即Pods 所在的 IP 段

4.2 部署 Node 节点

4.2.1 拉取镜像
# 在master节点执行 复制 master 节点的 kubeadm-config.yaml 到所有 node 节点
rsync -avP /root/kubeadm-config.yaml 172.18.119.150:/root/
rsync -avP /root/kubeadm-config.yaml 172.18.119.151:/root/ # 在Node 节点执行,拉取镜像
kubeadmin config images pull --config /root/kubeadm-config.yaml
4.3.2 初始化Node
在子节点执行以下命令(从master节点里的 kubeadm_init.log中复制出最后一行)
kubeadm join 172.18.119.145:6443 --token vb2046.9zcbi5g1cxbwb0zx --discovery-token-ca-cert-hash sha256:da2f4b5c4ed8586c3ea7ad3a8054f0be6ccc328ceccc91aba3860b007394c666
4.3.2 补充
如果初始化master时创建的token已经过期,需要重新创建token和获取ca证书sha256编码hash值,然后再初始化node节点
# 先在 Master 节点执行
kubeadm token create --print-join-command
// 输出
kubeadm join 172.18.119.145:6443 --token xofceq.lqdfk5rt65tvgnqg --discovery-token-ca-cert-hash sha256:da2f4b5c4ed8586c3ea7ad3a8054f0be6ccc328ceccc91aba3860b007394c666 # 然后到Node节点中执行上述的输出
kubeadm join 172.18.119.145:6443 --token xofceq.lqdfk5rt65tvgnqg --discovery-token-ca-cert-hash sha256:da2f4b5c4ed8586c3ea7ad3a8054f0be6ccc328ceccc91aba3860b007394c666

4.4 查看集群状态,当STATUS都为Ready时,集群搭建完成

kubectl get nodes
# 输出
NAME STATUS ROLES AGE VERSION
k8s-master Ready master 5d20h v1.17.2
k8s-node-01 Ready <none> 5d20h v1.17.2
k8s-node-02 Ready <none> 5d20h v1.17.2

阿里云CentOS7安装K8S的更多相关文章

  1. 关于阿里云centos7安装svn,客服端无法链接的问题

    阿里云的centos7的版本中,通过yum安装了subversion之后,svn客服端无法链接svn服务器. 首先确定服务器的安全组策略中的3690端口是否打开 然后确定svnserve配置是否正确, ...

  2. 阿里云 centos7 安装mysql数据库

    环境:阿里云ECS服务器,系统为centos7.2 删除原来的数据库: centos7中默认安装了数据库MariaDB,如果直接安装MySQL的话,会直接覆盖掉这个数据库,当然也可以手动删除一下: [ ...

  3. 阿里云centos7安装redis全过程记录

    Redis下载地址:https://redis.io/download(这个连接可能得翻墙查看,但是在centos7服务器上安装过程不需要翻墙,我查看了最新的是redis-4.0.9.tar.gz ) ...

  4. 阿里云CentOS7安装Docker

    买了阿里云主机,由于学生有优惠,玩起来确实爽. 系统版本: [root@lxd ~]# cat /etc/redhat-release CentOS Linux release 7.0.1406 (C ...

  5. 阿里云centos7安装python3.7.4和pip3

    亲测有效,针对 阿里云 centos 7 轻量服务器 python ==> 3.7.4 pip ==>  3 一,打开python官网,找到下载Python的tgz文件,有两种方式下载 ( ...

  6. 阿里云 centos7 安装MySQL8.0.13

    1.下载MySQL安装包(这里是有技巧的,说不定我这时写这个的时候版本还是你看到时的旧版本了,如果已经不是8.0了,可以根据这样来 下新版本) 先进入官网 再将这两者一结合,就是最新版本的了 所以 [ ...

  7. 阿里云 CentOS7 安装 Nginx 后,无法访问的问题

    在阿里云实例中,选择 网络与安全中的安全组.修改安全组规则. 例如:   但是还是不行 需要这样排查 netstat -anp | grep 80 iptables -L -n   firewall- ...

  8. 阿里云centos7安装桌面环境

    centos7. 1.安装X11.yum groupinstall "X Window System". 2.安装gnome. 全安装:yum groupinstall -y &q ...

  9. 阿里云环境安装K8S步骤

    1. 安装docker yum install -y docker 2. 修改 /etc/docker/daemon.json 文件并添加上 registry-mirrors 键值 $ vim /et ...

随机推荐

  1. orcal恢复delete误删除的数据

    orcal的删除有3种:delete.truncate.drop. delete可以手动提交和回滚,且可以使用where:而truncate.drop执行即对表数据进行了修改,且不能使用where. ...

  2. Python-基础知识汇集

    1.列表 列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现. 列表的数据项不需要具有相同的类型 创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可 代码理解:列表 ...

  3. nginx配置的server_name无法访问

    问题: 我的nginx.conf配置文件中的server_name是这样子的,然后无法访问. 但是如果说server_name后面改成服务器的IP地址却是可以访问的. 解决方案: 在本机上(不是服务器 ...

  4. Linux关闭avahi-daemon服务

    avahi-daemon是一种Linux操作系统上运行在客户机上实施查找基于网络的Zeroconf service的服务守护进程. 该服务可以为Zeroconf网络实现DNS服务发现及DNS组播规范. ...

  5. 拥抱云原生 2.0 时代,Tapdata 入选阿里云首期云原生加速器!

      3月9日,阿里云首期云原生加速器官宣,Tapdata 突出重围,成功入选31 强,将与多家行业知名企业,携手阿里云共建云原生行业新生态,加速拥抱云原生新时代的无限潜能.   2021年,阿里云正式 ...

  6. C语言整形转字符串的方法

    今天写力扣第九题,里面用到了这个,就做个笔记.   1. char *itoa( int value, char *string,int radix);(stdlib.h)     Windows特有 ...

  7. 苹果手机和Windows之间互传文件

    参考链接:https://jingyan.baidu.com/article/a378c960c46804f229283064.html 实现原理:就是使用Samba服务,windows共享一个文件夹 ...

  8. stringstrean类中关于clear和str的比较

    stringstream类涉及到多次类型转换的时候容易出现异常错误 因为第一次数据如果读入eof或者输出完整来到eof,此时stringstream会自动为其添上eofbit标志位,此时继续进行任何操 ...

  9. 类型转换_str()函数与int()函数

    数据类型转换 需要将不同数据类型拼接在一起的时候就需要先进行数据类型转换 str+str//这里的+叫做连接字符,有点类似C++中的操作符重载,老对象里面的内容了 在python中整型和字符串类型不能 ...

  10. 在Webpack 5 中如何进行 CSS 常用配置?

    本文摘要:主要通过实操讲解运用Webpack 5 CSS常用配置的方法步骤 前文已谈到可以通过配置 css-loader 和 style-loader,使 webpack5 具有处理 CSS 资源的能 ...