1个人做几个网站的负责人,怎么进入追信魔盒网站开发软件,wap网站技术,买了云服务器怎么做网站Kubernetes入门教程 --- 使用kubeadm和二进制安装1. Introduction1.1 架构图1.2 关键字介绍1.3 简述2. 使用Kubeadm Install2.1 申请三个虚拟环境2.2 准备安装环境2.3 配置yum源2.4 安装Docker2.5 时间同步2.6 安装组件2.7 部署集群2.8 Master安装网络插卡3. 查询状态3.1 查询n… Kubernetes入门教程 --- 使用kubeadm和二进制安装1. Introduction1.1 架构图1.2 关键字介绍1.3 简述2. 使用Kubeadm Install2.1 申请三个虚拟环境2.2 准备安装环境2.3 配置yum源2.4 安装Docker2.5 时间同步2.6 安装组件2.7 部署集群2.8 Master安装网络插卡3. 查询状态3.1 查询node节点3.2 查询pod3.3 测试集群3.4 部署Dashboard3.5 创建用户4. Version1.18特性4.1 Debug4.2 Sidecar4.3 Volumn4.4 ConfigMap/Secret5. Error6. Awakening1. Introduction
1.1 架构图 架构图 左面的master架构 右边是node架构 1.2 关键字介绍 关键字介绍 kubectl命令行工具 Podkubernetes的最小控制单元容器都是运行在pod中的一个pod中可以有1个或者多个容器 controller负责维护集群的状态比如副本期望数量、故障检测、自动扩展、滚动更新等 api server所有服务访问的唯一入口提供认证、授权、访问控制、API 注册和发现等机制 scheduler负责资源的调度按照预定的调度策略将 Pod 调度到相应的机器上 etcd键值对数据库保存了整个集群的状态官方将它定义成一个可信赖的分布式键值存储服务 kubelet负责维护容器的生命周期同时也负责 Volume 和网络的管理 kube-proxy负责为 Service 提供 cluster 内部的服务发现和负载均衡 Container runtime负责镜像管理以及 Pod 和容器的真正运行 label标签用于对pod进行分类同一类pod会拥有相同的标签 NameSpace命名空间用来隔离pod的运行环境 1.3 简述 kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。 1.创建一个 Master 节点kubeadm init 2.将一个 Node 节点加入到当前集群中ubeadm join Master节点的IP和端口 2. 使用Kubeadm Install
2.1 申请三个虚拟环境
序号ip节点类型110.136.217.11master210.136.217.12mode310.136.217.13node
2.2 准备安装环境 1.关闭selinux vim /etc/selinux/config 添加 SELIUNXdisabled 并将其他两行注释掉永久关闭selinux sed -i ‘s/enforcing/disabled/’ /etc/selinux/config2.临时关闭swap内存 swapoff -a3.永久关闭swap内存 vim /etc/fstab #永久关闭swap
sed -ri s/.*swap.*/#/ /etc/fstab设置host在master节点 vim /etc/hosts 调整内核参数 cat /etc/sysctl.d/kubernetes.conf EOF #开启网桥模式可将网桥的流量传递给iptables链 net.bridge.bridge-nf-call-ip6tables1 net.bridge.bridge-nf-call-iptables1 #关闭ipv6协议 net.ipv6.conf.all.disable_ipv61 net.ipv4.ip_forward1 EOF 保存参数 sysctl --system 2.3 配置yum源 配置源文件 vim /etc/yum.repos.d/kubernetes.repo [kubernetes]
nameKubernetes
baseurlhttps://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled1
gpgcheck0
repo_gpgcheck0
gpgkeyhttps://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kube2.4 安装Docker 安装wget yum install -y wget配置docker源 wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo安装docker yum -y install docker-ce-18.06.1.ce-3.el7开机启动docker systemctl enable docker systemctl start docker查看docker版本 docker --version守护进程重启 systemctl daemon-reload systemctl start docker避免每次使用docker都要sudo sudo usermod -aG docker xxxxx 2.5 时间同步 安装组件 yum install ntpdate -y时间同步 ntpdate http://time.windows.com 2.6 安装组件 安装 yum install -y kubelet-1.20.0 kubeadm-1.20.0 kubectl-1.20.0开机启动 systemctl enable kubelet systemctl start kubelet kubelet命令补全 echo “source (kubectl completion bash)” ~/.bash_profile source ~/.bash_profile 2.7 部署集群 查看需要的镜像 kubeadm config images list 上传 kubeadm-basic.images.tar.gz 压缩包至 /opt 目录 tar zxvf kubeadm-basic.images.tar.gz for循环安装 for i in $(ls /opt/kubeadm-basic.images/*.tar); do docker load -i $i; done 复制镜像都其他节点 scp -r kubeadm-basic.images rootnodehostname:/opt 在其他节点for循环安装 for i in $(ls /opt/kubeadm-basic.images/*.tar); do docker load -i $i; done初始化kubeadm(方法一) kubeadm config print init-defaults /opt/kubeadm-config.yaml cd opt vim kubeadm-config.yaml vim kubeadm-config.yaml
......
localAPIEndpoint:
advertiseAddress: 192.168.229.90 #指定master节点的IP地址
bindPort: 6443
......
kubernetesVersion: v1.15.1 #指定kubernetes版本号
networking:
dnsDomain: cluster.local
podSubnet: 10.244.0.0/16 #指定pod网段10.244.0.0/16用于匹配flannel默认网段
serviceSubnet: 10.96.0.0/16 #指定service网段
scheduler: {}
--- #末尾再添加以下内容
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: ipvs #把默认的service调度方式改为ipvs模式 初始化 kubeadm init --configkubeadm-config.yaml --experimental-upload-certs | tee kubeadm-init.log 证书目录 ls /etc/kubernetes/pki 初始化kubeadm(方法二) kubeadm init --apiserver-advertise-address0.0.0.0 --image-repository registry.aliyuncs.com/google_containers --kubernetes-versionv1.15.1 --service-cidr10.1.0.0/16 --pod-network-cidr10.244.0.0/16参数详解 1.apiserver-advertise-addressapiserver通告给其他组件的IP地址一般应该为Master节点的用于集群内部通信的IP地址0.0.0.0表示节点上所有可用地址 2.apiserver-bind-portapiserver的监听端口默认是6443 3.cert-dir通讯的ssl证书文件默认/etc/kubernetes/pki 4.control-plane-endpoint控制台平面的共享终端可以是负载均衡的ip地址或者dns域名高可用集群时需要添加 5.image-repository拉取镜像的镜像仓库默认是k8s.gcr.io 6.kubernetes-version指定kubernetes版本 7.pod-network-cidrpod资源的网段需与pod网络插件的值设置一致。通常Flannel网络插件的默认为10.244.0.0/16Calico插件的默认值为192.168.0.0/16 8.service-cidrservice资源的网段 9.service-dns-domainservice全域名的后缀默认是cluster.local修改 kube-proxy 的 configmap开启 ipvs kubectl edit cm kube-proxy -nkube-system mode: ipvs设定kubectl node 节点上执行 kubeadm join 命令加入群集 kubeadm join 192.168.2.66:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:aeeaa0e74c0854944d152aaf29f7b2f10863fc05a8dc1d73a7687b04bfde9e75 mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config2.8 Master安装网络插卡 master上安装calico.yaml解决STATUS notReady wget https://docs.projectcalico.org/v3.8/manifests/calico.yaml --no-check-certificate编辑calico.yaml 将pod cidr 192.168.0.0/16 改为 10.244.0.0/16应用 kubectl apply -f calico.yaml 3. 查询状态
3.1 查询node节点 kubectl get nodes 3.2 查询pod 查询所有pod kubectl get pods --namespacekube-system 查询具体pod kubectl --namespacekube-system describe pod podname 查询k8s版本 kubectl version 3.3 测试集群 在集群创建pod kubectl create deployment nginx --imagenginx kubectl expose deployment nginx --port80 --typeNodePort查看状态 kubectl get pods kubectl get svc 3.4 部署Dashboard 下载 wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.3/aio/deploy/recommended.yaml修改Service为NodePort类型 vim recommended.yaml 设定 kubectl apply -f recommended.yaml kubectl get pods -n kubernetes-dashboard 访问 https://NodeIP:30001 3.5 创建用户 创建用户 kubectl create serviceaccount dashboard-admin -n kube-system用户授权 kubectl create clusterrolebinding dashboard-admin --clusterrolecluster-admin --serviceaccountkube-system:dashboard-admin获取用户Token kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk ‘/dashboard-admin/{print $1}’) 4. Version1.18特性
4.1 Debug
4.2 Sidecar
4.3 Volumn
4.4 ConfigMap/Secret
5. Error The connection to the server localhost:8080 was refused - did you specify the right host or port? 1.编辑 vim /etc/profile 添加 export KUBECONFIG/etc/kubernetes/admin.conf 2.更新 source /etc/profile 6. Awakening 在一秒钟内看到本质的人和花半辈子也看不清一件事本质的人自然是不一样的命运。