##環(huán)境配置:
echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl -p /etc/sysctl.conf
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
修改主機(jī)名:
hostnamectl set-hostname c12
添加阿里源
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=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
##使用kubeadmin安裝
1、所有節(jié)點(diǎn)安裝kubeadm亩码,kubelet野瘦,kubectl
yum install -y kubelet-1.19.1-0 kubeadm-1.19.1-0 kubectl-1.19.1-0
systemctl enable kubelet && systemctl start kubelet
2、初始化master
kubeadm init --kubernetes-version=1.19.1 --apiserver-advertise-address=192.168.17.129 --image-repository registry.aliyuncs.com/google_containers --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=NumCPU
3吏廉、配置kubectl工具
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf? $HOME/.kube/config
4、安裝網(wǎng)絡(luò)插件
安裝calico:
mkdir k8s
cd k8s
wget https://docs.projectcalico.org/v3.10/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml??--no-check-certificate
## 將192.168.0.0/16修改ip地址為10.244.0.0/16
sed -i 's/192.168.0.0/10.244.0.0/g' calico.yaml
加載:kubectl apply -f calico.yaml
或者安裝flannel:
wget
https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
5席覆、Node加入集群
登錄到node節(jié)點(diǎn)娜睛,確保已經(jīng)安裝了docker和kubeadm,kubelet,kubectl
kubeadm join 192.168.31.150:6443--token ute1qr.ylhan3tn3eohip20 \
??? --discovery-token-ca-cert-hash sha256:f7b37ecd602deb59e0ddc2a0cfa842f8c3950690f43a5d552a7cefef37d1fa31
如果token過(guò)期方库,重新生成:
kubeadm token create
生成hash:
openssl x509 -pubkey -in/etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssldgst -sha256 -hex | sed 's/^.* //'
如果失敗,查看kubelet日志:
journalctl –u kubelet
###允許master調(diào)度
kubectl taint nodes k8s-master node-role.kubernetes.io/master-
###卸載
kubectl delete node --all
kubeadm reset -f
清理主機(jī):
docker volume rm etcd
rm -r /var/etcd/backups/*
modprobe -r ipip
lsmod
rm -rf ~/.kube/
rm -rf /etc/kubernetes/
rm -rf/etc/systemd/system/kubelet.service.d
rm -rf /etc/systemd/system/kubelet.service
rm -rf /usr/bin/kube*
rm -rf /etc/cni
rm -rf /opt/cni
rm -rf /var/lib/etcd
rm -rf /var/lib/kubelet
rm -rf /var/etcd
yum remove kube*
卸載生成的網(wǎng)卡:
ifconfig XX down
ip link del XX
##使用kind安裝
kind是把K8S安裝到docker中
安裝kind:
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.11.1/kind-linux-amd64
chmod +x ./kind
mv ./kind /usr/bin/kind
安裝kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
kubectl version --client
創(chuàng)建單機(jī)K8S集群:
kind create cluster --name myk8s
通過(guò)提供配置文件可以創(chuàng)建更復(fù)雜的集群
kind create cluster --config config.yaml
```
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: control-plane
- role: control-plane
- role: worker
- role: worker
- role: worker
```
參考:https://kind.sigs.k8s.io/docs/user/quick-start/#installation
##使用K3S安裝
K3S是一個(gè)精簡(jiǎn)版的K8S,大部分接口兼容
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -?--docker
運(yùn)行此安裝后:
K3s 服務(wù)將被配置為在節(jié)點(diǎn)重啟后或進(jìn)程崩潰或被殺死時(shí)自動(dòng)重啟邀层。
將安裝其他實(shí)用程序,包括?kubectl劲赠、crictl、ctr凛澎、k3s-killall.sh?和?k3s-uninstall.sh。
kubeconfig?文件將寫入到?/etc/rancher/k3s/k3s.yaml沫换,由 K3s 安裝的 kubectl 將自動(dòng)使用該文件
https://docs.k3s.io/zh/quick-start
卸載:/usr/local/bin/k3s-uninstall.sh