惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
N
Netflix TechBlog - Medium
大猫的无限游戏
大猫的无限游戏
爱范儿
爱范儿
Martin Fowler
Martin Fowler
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Register - Security
The Register - Security
IT之家
IT之家
博客园_首页
Microsoft Security Blog
Microsoft Security Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
I
InfoQ
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Jina AI
Jina AI
Apple Machine Learning Research
Apple Machine Learning Research
M
MIT News - Artificial intelligence
博客园 - Franky
C
Check Point Blog
T
The Blog of Author Tim Ferriss
V
Visual Studio Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Tailwind CSS Blog
Recent Announcements
Recent Announcements
云风的 BLOG
云风的 BLOG
美团技术团队
The Cloudflare Blog
Y
Y Combinator Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
MyScale Blog
MyScale Blog
The GitHub Blog
The GitHub Blog
D
DataBreaches.Net
Google DeepMind News
Google DeepMind News
V
V2EX
aimingoo的专栏
aimingoo的专栏
GbyAI
GbyAI
G
Google Developers Blog
S
SegmentFault 最新的问题
Hugging Face - Blog
Hugging Face - Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
U
Unit 42
罗磊的独立博客
量子位
MongoDB | Blog
MongoDB | Blog
Last Week in AI
Last Week in AI
Stack Overflow Blog
Stack Overflow Blog
小众软件
小众软件
D
Docker
人人都是产品经理
人人都是产品经理

k8s入门系列 on 打工人日志

k8s RKE2 cilium L2 + envoy gateway 安装配置 k8s RKE2 vSphere 存储配置 Kubernetes — skywalking + banyanDB APM监控部署 Kubernetes — promtail + loki + grafana 日志系统部署 Kubernetes — metalLB + Traefik 部署 Kubernetes — SSL 证书自动更新 Kubernetes — RKE2 + kube-vip + cilium 部署 metallb + ingress-nginx + argocd 本地部署 Kubernetes — k8s 手动安装 1.17.9 Argo cd 安装和部署 Kubernetes — kubecost 分析 Kubernetes 成本 Ansible部署ceph集群 Kubernetes — 更新证书 Kubernetes — Rook云存储介绍和部署 Kubernetes — 基于K8S搭建Ceph分布式存储 Kubernetes — 探针和生命周期 Kubernetes — 开放标准(OCI、CRI、CNI、CSI、SMI、CPI)概述 kubernetes 部署插件 (Flannel、Web UI、CoreDNS、Ingress Controller) kubernetes 存储 kubernetes 从1.23.x 升级到 1.24.x 编写 kubernetes 资源描述文件 kubernetes manual expansion kubernetes 调度过程 k8s本地联调神器kt-connect OpenELB:让k8s私有环境对外暴露端口 kubernetes ansible自动化部署 kubernetes面试题汇总 Kubernetes 安装 Harbor 搭建 Kubernetes 实验手册(1) Keepalived高可用 k3s 升级版本 helm 安装 k8s 部署loki日志 Kubernetes 创建nfs存储类 Kubernetes k8s 组件
kubernetes 脚本快速安装
2022-03-10 · via k8s入门系列 on 打工人日志

kubernetes 脚本快速安装

  • 1、三台机器设置自己的 hostname(不能是 localhost)
1# 修改 hostname;  k8s-01要变为自己的hostname
2hostnamectl set-hostname k8s-01
3# 设置 hostname 解析
4echo "127.0.0.1   $(hostname)" >> /etc/hosts
  • 2、所有机器批量执行如下脚本

  • 1#先在所有机器执行 vi k8s.sh
    2# 进入编辑模式(输入i),把如下脚本复制
    3# 所有机器给脚本权限  chmod +x k8s.sh
    4#执行脚本 ./k8s.sh
    
 1#/bin/sh
 2
 3#######################开始设置环境##################################### \n
 4
 5
 6printf "##################正在配置所有基础环境信息################## \n"
 7
 8
 9printf "##################关闭selinux################## \n"
10sed -i 's/enforcing/disabled/' /etc/selinux/config
11setenforce 0
12printf "##################关闭swap################## \n"
13swapoff -a
14sed -ri 's/.*swap.*/#&/' /etc/fstab
15
16printf "##################配置路由转发################## \n"
17cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
18br_netfilter
19EOF
20echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.d/k8s.conf
21
22## 必须 ipv6流量桥接
23echo 'net.bridge.bridge-nf-call-ip6tables = 1' >> /etc/sysctl.d/k8s.conf
24## 必须 ipv4流量桥接
25echo 'net.bridge.bridge-nf-call-iptables = 1' >> /etc/sysctl.d/k8s.conf
26echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.d/k8s.conf
27echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.d/k8s.conf
28echo "net.ipv6.conf.lo.disable_ipv6 = 1" >> /etc/sysctl.d/k8s.conf
29echo "net.ipv6.conf.all.forwarding = 1"  >> /etc/sysctl.d/k8s.conf
30modprobe br_netfilter
31sudo sysctl --system
32
33
34printf "##################配置ipvs################## \n"
35cat <<EOF | sudo tee /etc/sysconfig/modules/ipvs.modules
36#!/bin/bash
37modprobe -- ip_vs
38modprobe -- ip_vs_rr
39modprobe -- ip_vs_wrr
40modprobe -- ip_vs_sh
41modprobe -- nf_conntrack_ipv4
42EOF
43
44chmod 755 /etc/sysconfig/modules/ipvs.modules
45sh /etc/sysconfig/modules/ipvs.modules
46
47
48printf "##################安装ipvsadm相关软件################## \n"
49yum install -y ipset ipvsadm
50
51
52
53
54printf "##################安装docker容器环境################## \n"
55sudo yum remove docker*
56sudo yum install -y yum-utils
57sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
58yum install -y docker-ce-19.03.9  docker-ce-cli-19.03.9 containerd.io
59systemctl enable docker
60systemctl start docker
61
62sudo systemctl daemon-reload
63sudo systemctl restart docker
64
65
66printf "##################安装k8s核心包 kubeadm kubelet kubectl################## \n"
67cat <<EOF > /etc/yum.repos.d/kubernetes.repo
68[kubernetes]
69name=Kubernetes
70baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
71enabled=1
72gpgcheck=0
73repo_gpgcheck=0
74gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
75   http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
76EOF
77
78###指定k8s安装版本
79yum install -y kubelet-1.21.0 kubeadm-1.21.0 kubectl-1.21.0
80
81###要把kubelet立即启动。
82systemctl enable kubelet
83systemctl start kubelet
84
85printf "##################下载api-server等核心镜像################## \n"
86sudo tee ./images.sh <<-'EOF'
87#!/bin/bash
88docker pull k8s.gcr.io/kube-apiserver:v1.21.9
89docker pull k8s.gcr.io/kube-controller-manager:v1.21.9
90docker pull k8s.gcr.io/kube-scheduler:v1.21.9
91docker pull k8s.gcr.io/kube-proxy:v1.21.9
92docker pull k8s.gcr.io/pause:3.4.1
93docker pull k8s.gcr.io/etcd:3.4.13-0
94docker pull k8s.gcr.io/coredns/coredns:v1.8.0
95EOF
96
97chmod +x ./images.sh && ./images.sh
98
99### k8s的所有基本环境全部完成
  • 3、使用 kubeadm 引导集群(参照初始化 master 继续做)
1
2#### --apiserver-advertise-address 的地址一定写成自己master机器的ip地址
3#### 虚拟机或者其他云厂商给你的机器ip  10.96  192.168
4#### 以下的只在master节点执行
5kubeadm init \
6--apiserver-advertise-address=10.12.12.24 \
7--kubernetes-version v1.21.0 \
8--service-cidr=10.96.0.0/16 \
9--pod-network-cidr=10.124.0.0/16
  • 4、master 结束以后,按照控制台引导继续往下
 1## 第一步
 2mkdir -p $HOME/.kube
 3sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
 4sudo chown $(id -u):$(id -g) $HOME/.kube/config
 5
 6##第二步
 7export KUBECONFIG=/etc/kubernetes/admin.conf
 8
 9##第三步 部署网络插件
10kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
11
12
13
14##第四步,用控制台打印的kubeadm join 去其他node节点执行
15kubeadm join 10.170.11.8:6443 --token cnb7x2.lzgz7mfzcjutn0nk \
16	--discovery-token-ca-cert-hash sha256:00c9e977ee52632098aadb515c90076603daee94a167728110ef8086d0d5b37d

初始化 worker 节点(worker 执行)

1##过期怎么办
2kubeadm token create --print-join-command
3kubeadm join --token y1eyw5.ylg568kvohfdsfco --discovery-token-ca-cert-hash sha256: 6c35e4f73f72afd89bf1c8c303ee55677d2cdb1342d67bb23c852aba2efc7c73
  • 5、验证集群
1#等一会,在master节点执行
2kubectl get nodes
  • 6、设置 kube-proxy 的 ipvs 模式
 1##修改kube-proxy默认的配置
 2kubectl edit cm kube-proxy -n kube-system
 3## 修改mode: "ipvs"
 4
 5##改完以后重启kube-proxy
 6### 查到所有的kube-proxy
 7kubectl get pod -n kube-system |grep kube-proxy
 8### 删除之前的即可
 9kubectl delete pod 【用自己查出来的kube-proxy-dw5sf kube-proxy-hsrwp kube-proxy-vqv7n】  -n kube-system
10
11###