安装K8S的三种方法

##环境配置:

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


修改主机名:

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、所有节点安装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、安装网络插件

安装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节点,确保已经安装了docker和kubeadm,kubelet,kubectl

kubeadm join 192.168.31.150:6443--token ute1qr.ylhan3tn3eohip20 \

    --discovery-token-ca-cert-hash sha256:f7b37ecd602deb59e0ddc2a0cfa842f8c3950690f43a5d552a7cefef37d1fa31


如果token过期,重新生成:

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调度

kubectl taint nodes k8s-master node-role.kubernetes.io/master-

###卸载

kubectl delete node --all

kubeadm reset -f


清理主机:

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*


卸载生成的网卡:

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

创建单机K8S集群:

kind create cluster --name myk8s

通过提供配置文件可以创建更复杂的集群

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是一个精简版的K8S,大部分接口兼容

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh - --docker

运行此安装后:

K3s 服务将被配置为在节点重启后或进程崩溃或被杀死时自动重启。

将安装其他实用程序,包括 kubectl、crictl、ctr、k3s-killall.sh 和 k3s-uninstall.sh。

kubeconfig 文件将写入到 /etc/rancher/k3s/k3s.yaml,由 K3s 安装的 kubectl 将自动使用该文件

https://docs.k3s.io/zh/quick-start

卸载:/usr/local/bin/k3s-uninstall.sh

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。