一、部署
(1)kubeadm工具:

•kubeadm init:初始化一个Master节点•kubeadm join:将工作节点退出集群•kubeadm upgrade:降级K8s版本•kubeadm token:治理 kubeadm join 应用的令牌•kubeadm reset:清空 kubeadm init 或者 kubeadm join 对主机所做的任何更改•kubeadm version:打印 kubeadm 版本•kubeadm alpha:预览可用的新性能

(2)初始化配置

# 敞开防火墙systemctl stop firewalldsystemctl disable firewalld# 敞开selinuxsed -i 's/enforcing/disabled/' /etc/selinux/config  # 永恒setenforce 0  # 长期# 敞开swapswapoff -a  # 长期sed -ri 's/.*swap.*/#&/' /etc/fstab    # 永恒# 依据布局设置主机名hostnamectl set-hostname <hostname># 在master增加hostscat >> /etc/hosts << EOF192.168.31.61 k8s-master1192.168.31.62 k8s-node1192.168.31.63 k8s-node2EOF# 将桥接的IPv4流量传递到iptables的链cat > /etc/sysctl.d/k8s.conf << EOFnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1EOFsysctl --system  # 失效# 工夫同步yum install ntpdate -yntpdate time.windows.com

(3)装置docker

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repoyum -y install docker-cesystemctl enable docker && systemctl start docker

配置镜像下载加速器:

cat > /etc/docker/daemon.json << EOF{  "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]}EOFsystemctl restart dockerdocker info

增加阿里云YUM软件源

cat > /etc/yum.repos.d/kubernetes.repo << EOF[kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=0repo_gpgcheck=0gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpgEOF

装置kubeadm,kubelet和kubectl

yum install -y kubelet-1.20.0 kubeadm-1.20.0 kubectl-1.20.0systemctl enable kubelet

部署Kubernetes Master

kubeadm init \  --image-repository registry.aliyuncs.com/google_containers \  --kubernetes-version v1.20.0 \  --service-cidr=10.96.0.0/12 \  --pod-network-cidr=10.244.0.0/16 \  --ignore-preflight-errors=all

初始化实现后,最初会输入一个join命令,先记住,上面用。
拷贝kubectl应用的连贯k8s认证文件到默认门路:

mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config

查看工作节点:
kubectl get nodes
退出Kubernetes Node
向集群增加新节点,执行在kubeadm init输入的kubeadm join命令

kubeadm join **** --token **** \--discovery-token-ca-cert-hash sha256:****

默认token有效期为24小时,当过期之后,该token就不可用了。这时就须要从新创立token,能够间接应用命令快捷生成:

kubeadm token create --print-join-command

部署容器网络(CNI)

kubectl apply -f calico.yamlkubectl get pods -n kube-system

测试kubernetes集群

kubectl create deployment nginx --image=nginxkubectl expose deployment nginx --port=80 --type=NodePortkubectl get pod,svc

拜访地址:http://NodeIP:Port

二、常用命令
应用Deployment控制器部署镜像

kubectl create deployment web --image=nginx --replicas=3kubectl get deploy,pods

应用service将pod裸露进来

kubectl expose deployment web --port=80 --target-port=80 --type=NodePortkubectl get service

部署镜像

kubectl apply -f ***.yamlkubectl create deployment web --image=nginx:1.16 --replicas=3

利用降级

kubectl apply -f ***.yamlkubectl set image deployment/web nginx=nginx:1.17

程度扩容

批改yaml里replicas值,再applykubectl scale deployment web --replicas=10

公布失败回滚

kubectl rollout history deployment/web #查看历史公布版本kubectl rollout undo deployment/web #回滚上一个版本kubectl rollout undo deployment/web --to-revision=2 #回滚历史指定版本

利用下线

kubectl delete deploy/webkubectl delete svc/web

pod命令

创立pod:kubectl apply -f pod.yaml或者应用命令:kubectl run nginx --image=nginx查看pod:kubectl get podskubectl describe pod <Pod名称>查看日志:kubectl logs <Pod名称> [-c Container]kubectl logs <Pod名称> [-c Container] -f进入容器终端kubectl exec <Pod名称> [-c Container] --bash删除Podkubectl delete pod <Pod名称>

service命令

创立servicekubectl apply -f service.yaml查看servicekubectl get service 

查看service对应的pod

kubectl get epkubectl get service pod1 -o yamlkubectl get pods -l app=pvc

裸露pod上的标签

kubectl get pods --show-labelskubectl get ep -wss -antp|grep 31871

主动生成yaml文件

kubectl create deployment java-demo --image=** --dry-run -o yaml > web.yamlkubectl expose deployment java-demo --port=80 --target-port=8080 --type=NodePort --dry-run -o yaml > svc.yaml