八步安装kubernetes,全程无坑系列

环境

centos7

内核版本 3.10.0-1062.el7.x86_64

主机名

IP

配置

cka-master01

192.168.176.66

2G2核

cka-slave01

192.168.176.67

1G1核

cka-slave02

192.168.176.68

1G1核

步骤1-5,master和worker节点都要进行

步骤6,只需master节点执行

步骤7,只需worker节点执行

步骤8,在master节点上进行验证

 

1.修改主机名

hostname cka-master01
hostname cka-slave01
hostname cka-slave02

vim /etc/sysconfig/network
# 在文件中加入对应的主机名

2.修改hosts文件

vim /etc/hosts
192.168.176.66 cka-master01
192.168.176.67 cka-slave01
192.168.176.68 cka-slave02

3.关闭swap分区、selinux、防火墙

swapoff -a

vim /etc/fstab
找到下面行在前面加一个 # 注释 swap功能

systemctl stop firewalld.service
systemctl disable firewalld.service

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
grep SELINUX=disabled /etc/selinux/config
setenforce 0

4.安装docker

# 卸载原来安装的docker
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

# 安装相关依赖
yum install -y yum-utils device-mapper-persistent-data lvm2

# 添加docker的阿里云yum源
yum-config-manager \
     --add-repo \
     http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 安装docker
yum install -y \
  containerd.io-1.2.13 \
  docker-ce-19.03.11 \
  docker-ce-cli-19.03.11
  
  # 启动docker
  systemctl start docker
  
  # 查看docker版本
  docker version
  
  # 设置docker开机自启
  systemctl enable docker

5.安装kubeadm、kubelet、kubectl

# 配置阿里云kubernetes的yum源
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

# 安装kubeadm、kubelet、kubectl
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

systemctl enable --now kubelet

6.master节点初始化

(注意:matser至少要有2G2核)

kubeadm init \
--apiserver-advertise-address=192.168.176.66 \ # 填写master的ip地址
--image-repository registry.aliyuncs.com/google_containers \ # 设置从阿里云拉取相应的镜像
--pod-network-cidr=10.244.0.0/16


mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

# 下载网络插件-calico
curl https://docs.projectcalico.org/manifests/calico.yaml -O
kubectl apply -f calico.yaml

# 也可以选择flannel作为网络插件
curl https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml -O
kubectl apply -f kube-flannel.yml

7.加入worker节点

在worker节点中执行以下命令,该命令会在执行kubeadm init命令后出现

kubeadm join 192.168.176.66:6443 --token nwiykd.avt9oedno8wwpixb \
    --discovery-token-ca-cert-hash sha256:8298749505e742ba38d99b50044e38fc3a2fc1e7ebe70dcedc2fa305e167b56f

# 如果忘记保存该条命令了或者token失效了,可以执行下面的命令,重新生成kubeadm join相关token及命令
kubeadm token create --print-join-command

8.验证

kubectl get pods -A

如果所有Pod都处于Running状态,说明集群正常运行。如果发现有状态错误的Pod,执行kubectl describe pod <pod_name> -n kube-system查看错误原因,常见的错误一般是镜像没有下载完成

注意:

kubernetes1.18.6之后的一个坑

出现这种情况,是/etc/kubernetes/manifests下的kube-controller-manager.yaml和kube-scheduler.yaml设置的默认端口是0,在文件中注释掉就可以了

vim /etc/kubernetes/manifests/kube-controller-manager.yaml 
vim /etc/kubernetes/manifests/kube-scheduler.yaml

kube-controller-manager.yaml

kube-scheduler.yaml

所有机器重启kubelet

systemctl restart kubelet.service

备注:

自动补全功能(在使用kubectl命令的时候按tab键就可以自动补啦)

在master节点上执行以下命令

yum install -y bash-completion
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值