前言
初始化K8SMaster和Node的时候建议整理成shell自动化脚本,一键式部署
<![if supportMisalignedColumns]> <![endif]>ID | 实例名 | 主IPv4公网IP | 主IPv4内网IP | 网络类型 |
ins-ewydxnb8 | worker1 | 1.13.9.164 | 10.206.0.5 | Default-VPC |
ins-ic0slo4m | Master | 175.27.191.229 | 10.206.0.3 | Default-VPC |
安装K8S:
安装:Matser(docker,kubectl,kubeadm,flannel),Worker(kubectl,kubeadm,kubelet)
安装环境:Ubuntu Server 20.04 LTS 64位 + 腾讯云服务器
一、安装docker
- 设置apt 镜像地址,vi /etc/apt/sources.list (腾讯云已经默认设置腾讯云地址)
- apt-get update; apt-get install -y docker docker.io
- 国内访问docker镜像外网较慢,配置国内docker镜像源:
- 新建文件:vi /etc/docker/daemon.json
- 添加:{“registry-mirrors”: [“https://6uz5rfwu.mirror.aliyuncs.com”,“https://hub-mirror.c.163.com”, “https://docker.mirrors.ustc.edu.cn”,“https://registry.docker-cn.com”]}
- 重新加载:systemctl daemon-reload
- 重启docker:systemctl restart docker
- 查看镜像设置情况:docker info
- 设置 docker cgroup驱动为systemd
- 打开:vi /etc/docker/daemon.json
- 添加:{“exec-opts”:[“native.cgroupdriver=systemd”]}
- 重启:systemctl daemon-reload; systemctl restart docker
daemon.json配置汇总
vi /etc/docker/daemon.json
{"exec-opts":["native.cgroupdriver=systemd"],"registry-mirrors": ["https://6uz5rfwu.mirror.aliyuncs.com","https://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn", "https://registry.docker-cn.com"]}
或者:
cat <<EOF > /etc/docker/daemon.json
{"exec-opts":["native.cgroupdriver=systemd"],"registry-mirrors": ["https://6uz5rfwu.mirror.aliyuncs.com","https://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn", "https://registry.docker-cn.com"]}
EOF
daemon-reload
systemctl restart docker
二、安装K8S
- 配置K8S镜像源:
- apt-get update && apt-get install -y apt-transport-https
- curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
- cat <<EOF > /etc/apt/sources.list.d/kubernetes.list deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main EOF
- apt-get update
- 设置Master&各个节点的hostaname
修改文件:vi /etc/hostname,同时修改 vi /etc/hosts ,重启
命令修改:hostnamectl set-hostname node1 命令相当于只修改了 /etc/hostname文件。
- 关闭防火墙,关闭Selinux,关闭Swap
防火墙: ufw status(查看状态:inactive状态是防火墙关闭状态 active是开启状态)
ufw disable (关闭防火墙)
ufw enable (开启防火墙)
ufw version (查看防火状态)关闭Selinux:修改文件 /etc/selinux/config,将 SELINUX=enforcing改为SELINUX=disabled 永久处理
安装Selinux: apt-get install policycoreutils
setenforce 0 #设置SELinux 成为permissive模式 临时关闭
setenforce 1 #设置SELinux 成为enforcing模式 临时打开关闭swap: swapon --show 查看swappon状态,为空则表示当前未启用Swap分区
swapoff -a 临时禁止swap分区
swapon -a 临时启用swap分区
vim /etc/fstab 永久禁止
- 安装kubectl、kubeadm、kubelet
apt-get install -y kubectl kubelet kubeadm
- 初始化Master
kubeadm init --kubernetes-version=1.19.3 \
--apiserver-advertise-address=118.195.235.99 APIServer需要广播的监听地址, 如果是云环境,这里要指定 内网IP
--image-repository registry.aliyuncs.com/google_containers 代理地址
--service-cidr=10.1.0.0/16 \ 为service的虚拟IP地址另外指定IP地址
--pod-network-cidr=10.244.0.0/16 指明pod网络可以使用的IP地址段
kubeadm init --apiserver-advertise-address=10.206.0.3 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.19.3 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16
1)、To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown
(
i
d
−
u
)
:
(id -u):
(id−u):(id -g) $HOME/.kube/config
mkdir -p $HOME/.kube;sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config;sudo chown
(
i
d
−
u
)
:
(id -u):
(id−u):(id -g) $HOME/.kube/config
2)、You should now deploy a pod network to the cluster.
Run “kubectl apply -f [podnetwork].yaml” with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
安装网络插件:安装网络插件:flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
安装成功标志:
3)、kubeadm join 10.206.0.3:6443 --token kqiqil.kh3sab5wmhtv5g0v --discovery-token-ca-cert-hash sha256:18acd420e9d15fe730284bc96d2771b163fefc687082a75a931f6235bfb33b69 -----》初始化worker节点的时候使用
4)、echo “export KUBECONFIG=/etc/kubernetes/admin.conf” >> ~/.bash_profile 配置kubeconfig环境变量
- 初始化Node节点
- 拷贝master上的admin.conf到worker节点上: scp -r /etc/kubernetes/admin.conf ubuntu@1.13.9.164:~
- 执行:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown ( i d − u ) : (id -u): (id−u):(id -g) $HOME/.kube/config
echo “export KUBECONFIG=/etc/kubernetes/admin.conf” >> ~/.bash_profile 或者
echo “export KUBECONFIG=/etc/kubernetes/admin.conf” >> /etc/profile - 执行:kubeadm join 10.206.0.3:6443 --token kqiqil.kh3sab5wmhtv5g0v --discovery-token-ca-cert-hash sha256:18acd420e9d15fe730284bc96d2771b163fefc687082a75a931f6235bfb33b69
- 重启:systemctl restart kubelet
特别的,当忘记master中的token或者token过期(24h),可以使用如下命令创建 kubeadm token create
kubeadm token create --ttl 0 (永久不过期)在master上面查看kubeadm token list TOKEN TTL EXPIRES USAGES DESCRIPTION
EXTRA GROUPS kqiqil.kh3sab5wmhtv5g0v 22h
2022-04-09T12:47:04+08:00 authentication,signing The default
bootstrap token generated by ‘kubeadm init’.
system:bootstrappers:kubeadm:default-node-token在master上面查看discovery-token-ca-cert-hash openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der
2>/dev/null | openssl dgst -sha256 -hex | sed ‘s/^.* //’
18acd420e9d15fe730284bc96d2771b163fefc687082a75a931f6235bfb33b69在node上面执行join命令 kubeadm join 10.206.0.3:6443 --token kqiqil.kh3sab5wmhtv5g0v --discovery-token-ca-cert-hash
sha256:18acd420e9d15fe730284bc96d2771b163fefc687082a75a931f6235bfb33b69
- 安装kubens,方便切换命名空间
下载二进制文件:git clone https://gitee.com/cat310/kubectx.git -b master
拷贝:cp -rvf kubectx/kubens /usr/local/bin/
kubnes,可以查看当前工作空间,
kubens kube-system, 切换工作空间
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。