k8s学习
三大指标 高可用,高性能,高并发
高性能
RPC 通信
Kyro 高速序列化
HikariCP 连接池
SQL 优化
Redis 缓存
JVM 优化
GC 优化
高并发
垂直扩展+水平扩展
高可用
一直可以用,99.999999% ->k8s
- 解决单点故障
- 实现崩溃恢复,自动重启
- 自动扩/缩容
- 金丝雀发布,滚动更新,版本回滚
- DevOps 自动化运维 ->AIOps
k8s集群安装
# 准备工作
# 配置主机名
hostnamectl set-hostname k8s-master
echo "192.168.0.97 k8s-master" >> /etc/hosts
# 关闭selinux
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config
# 关闭firewalld
systemctl disable firewalld --now
# 关闭交换分区
swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
# 启用ipv4转发
cat > /etc/sysctl.d/kubernetes.conf <<EOF
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
vm.swappiness=0
EOF
# 添加并更新源
# 下载docker yum源
yum install -y wget
wget -O /etc/yum.repos.d/docker-ce.repo https://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo
# 增加kubernetes源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://repo.huaweicloud.com/kubernetes/yum/repos/kubernetes-el7-x86-64
enabled=1
gpgcheck=1
repo_gpgcheck=0
gpgkey=https://repo.huaweicloud.com/kubernetes/yum/doc/yum-key.gpg https://repo.huaweicloud.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
#更新yum 源
sysctl --system
# 安装docker
yum install docker-ce -y
systemctl enable docker --now
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://c79a812ed3cf45af9b15d7c8d68c3a25.mirror.swr.myhuaweicloud.com"],
"exec-opts":["native.cgroupdriver=systemd"],
"log-driver":"json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver":"overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
}
EOF
systemctl restart docker
# 安装k8s
yum install -y kubelet-1.23.1 kubeadm-1.23.1 kubectl-1.23.1
systemctl enable kubelet
kubeadm init --apiserver-advertise-address=192.168.0.97 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.23.1 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=all
sleep 120
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
wget --no-check-certificate https://docs.projectcalico.org/v3.15/manifests/calico.yaml
kubectl apply -f calico.yaml
sleep 360
kubectl taint node k8s-master node-role.kubernetes.io/master-
kubectl get pod -n kube-system
I'm a fucKing fake coder!