一个简单的小开发
首页
分类
标签
归档
关于

YDS

30岁大龄程java程序员,心不老,神不灭
首页
分类
标签
归档
关于
  • K8S

    • K8S-集群安装(2.24前后版本的安装方式都有)
      • 🍄
        • 1.18版本
        • 1.28版本
        • 安装网络
        • 结束
    • K8S基础概念学习
    • K8S控制台安装(安装dashboard)
    • storageclass学习
    • configmap学习
    • K8S发布JAVA项目
    • k8s长期token的使用方式
    • 创建一个pvc
  • DOCKER

  • HELM

  • LINUX

  • DEVOPS
  • K8S
yds
2020-07-22
目录

K8S-集群安装(2.24前后版本的安装方式都有)精

# K8S安装 ☸️

本文介绍了安装k8s集群的一种方式,使用kubeadm快速构建一套可用的标准的k8s集群 😍。安装的过程中,不同时期的版本是有些许差异的😱,比较明显的差异就是在2.24之后,docker不能直接使用,需要通过cri来进行适配。

# 环境准备

  • 3️⃣台linux服务器

  • 网络🛜可用

  • 修改每个服务器的hosts文件📃

vim /etc/hosts  
1
192.168.0.75 master01  
192.168.0.76 node01  
192.168.0.77 node02
1
2
3
  • 🔞关闭防火墙
systemctl stop firewalld  

systemctl disable firewalld
1
2
3
  • ❌关闭swap,注释swap分区
setenforce 0

sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

swapoff -a

sed -i 's/.*swap.*/#&/' /etc/fstab
1
2
3
4
5
6
7
  • 配置内核参数,将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
1
2
3
4
sysctl --system
1

# 安装常用包工具🛠️

yum install vim bash-completion net-tools gcc -y
1

# 安装docker🐳

yum install -y yum-utils device-mapper-persistent-data lvm2

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum -y install docker-ce
1
2
3
4
5
tips 📣

我之前在安装docker的时候总是会有runc的问题 🌚,如果在安装过程中遇到了就给runc重装一下👻

yum remove runc -y

yum install runc -y

yum -y install docker-ce
1
2
3
4
5

# 🛫添加aliyundocker仓库加速器🚀

mkdir -p /etc/docker

tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://reg-mirror.qiniu.com/"]
}
EOF
1
2
3
4
5
6
7

# 启动docker 🕹️

systemctl daemon-reload

systemctl enable docker

systemctl restart docker
1
2
3
4
5

# 安装k8s ☸️

  • 安装kubectl、kubelet、kubeadm
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 update
1
2
3
4
5
6
7
8
9
10
11

# 🍄


👉 到目前为止,以上步骤各个版本都是适用的💄,接下来将以1.18和1.28两个版本为例分别展开记录安装步骤💦

# 1.18版本

安装1.18.0,这个版本是相对稳定的版本,同时下载的时候没有网络的限制,更新的版本下载时可能会遇到国内源不足的问题,国外的因为网络问题,下载不下来

tips 📣

安装1.18.0,这个版本是相对稳定的版本,同时下载的时候没有网络的限制,更新的版本下载时可能会遇到国内源不足的问题,国外的因为网络问题,下载不下来。

可以使用以下命令列举出当前可以安装的k8s软件版本

yum list kubelet kubeadm kubectl  --showduplicates|sort -r
1
  • 安装
yum install kubelet-1.18.0-0 kubeadm-1.18.0-0  kubectl-1.18.0-0 -y

## 跳过公钥检查
yum install kubelet-1.18.0-0 kubeadm-1.18.0-0  kubectl-1.18.0-0 -y --nogpgcheck

systemctl enable kubelet
1
2
3
4
5
6

以上步骤各个节点都要执行

  • master上初始化k8s集群
kubeadm init \
--kubernetes-version=1.18.0 \
--apiserver-advertise-address=192.168.60.75 \
--image-repository registry.aliyuncs.com/google_containers \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16
1
2
3
4
5
6

--apiserver-advertise-address 本机的ip,其它部分不用动, 记住这一步执行完成后的返回信息,node加入集群时要用

  • kubectl命令可用
mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

source <(kubectl completion bash)

1
2
3
4
5
6
7
8
  • 可以使用了
kubectl get node

kubectl get pod --all-namespaces
1
2
3

# 1.28版本

新版的要使用cri-docker才能用docker

  • 安装cri-dockerd
rpm -ivh libcgroup-0.41-19.el8.x86_64.rpm

rpm -ihv cri-dockerd-0.3.4-3.el7.x86_64.rpm

systemctl daemon-reload

systemctl enable cri-docker.socket cri-docker

systemctl start cri-docker.service
1
2
3
4
5
6
7
8
9
  • 初始化节点
kubeadm init \
--apiserver-advertise-address=192.168.0.151 \
--cri-socket=unix:///var/run/cri-dockerd.sock \
--service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16
1
2
3
4
  • node加入节点
kubeadm join 192.168.0.151:6443 --token kphcf8.8bkwpcg7svwb2cql \
--discovery-token-ca-cert-hash sha256:2135122a581ab62441bbe534f151918be467d5895614808379240c96f52dba88 \
--cri-socket=unix:///var/run/cri-dockerd.sock 
1
2
3
  • master也干活
kubectl taint nodes --all node-role.kubernetes.io/control-plane-
1
重置集群

执行这个命令可以重置集群

kubeadm reset -f --cri-socket=unix:///var/run/cri-dockerd.sock
1

总得来说,1.28相比1.18只是差在cri的区别上,我们在处理集群的时候需要加上--cri-socket=unix:///var/run/cri-dockerd.sock参数

至此master安装完毕

# 安装网络

2选1

  • flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
1
  • calico
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
1
  • 如果是单节点的话,使master可以部署pod
kubectl taint nodes master01 node-role.kubernetes.io/master-
1
  • node节点加入集群
kubeadm join 192.168.0.75:6443 --token dq7wsg.leird6167ziiw3mf --discovery-token-ca-cert-hash sha256:63d9ae3a2725024b4dc812c1a2313f5a9a278b2d5afd257f9eff82314c7111ca --v=5
1

# 结束

如果有不正确的地方可以在评论进行交流🍺🍺🍺🍺🍺🍺🍺


一些可能会用到的操作

重置时可能出现问题

    kubeadm reset -f
    
    # 如何失败,提示:[reset] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'
    
    # centos 7 可能会有这样的问题,如果是master机器的话,需要先执行以下指令:
    
    rm -rf /etc/kubernetes/*
    rm -rf /root/.kube/
    rm -rf /var/lib/etcd
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    kubeadm reset -f --cri-socket=unix:///var/run/cri-dockerd.sock
    
    1
    // Make sure to add code blocks to your code group

    清空iptables规则

    iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
    
    1

    master执行,重新加入的指令

    kubeadm token create --print-join-command
    
    1

    docker 代理

    vim /etc/docker/daemon.json
    
    1
    {
      "proxies": {
        "http-proxy": "http://192.168.0.107:7890",
        "https-proxy": "http://192.168.0.107:7890",
        "no-proxy": "192.168.0.*"
      },
      "registry-mirrors": ["https://reg-mirror.qiniu.com/"]
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    #K8S
    上次更新: 2024/09/30, 01:34:11
    K8S基础概念学习

    K8S基础概念学习→

    最近更新
    01
    使用docker-compose安装mysql
    09-30
    02
    鸿蒙app开发中的数据驱动ui渲染问题
    08-01
    03
    LINUX连接openvpn
    07-02
    更多文章>
    Theme by Vdoing | Copyright © 2020-2024 YDS
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式