# 安装kubelet kubeadm kubectl

https://kubernetes.io/zh-cn/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

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
apt-get install -y kubelet kubeadm kubectl

## 另外,你也可以指定版本安装
## apt-get install kubectl=1.21.3-00 kubelet=1.21.3-00 kubeadm=1.21.3-00

# minikube

# 安装

minikube: https://minikube.sigs.k8s.io/docs/start

sudo pacman -S nimikube

# 启动

第一次启动

minikube start --driver=virtualbox /
--registry-mirror=https://registry.docker-cn.com

minikube start --vm-driver=virtualbox /
--image-mirror-country=cn /
--image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers /
--iso-url=https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.7.3.iso /
--registry-mirror=https://reg-mirror.qiniu.com
  • --vm-driver 如果不写会自动检测,可选值 virtualbox, vmwarefusion, hyperv, vmware
  • --image-mirror-country 需要使用的镜像镜像的国家/地区代码。留空以使用全球代码。对于中国大陆用户,请将其设置为 cn。
  • --image-repository用来拉取 Kubernetes 集群所需镜像的仓库
  • --iso-url下载 minikube 虚机安装所需的 iso 文件
  • --registry-mirror docker registry的镜像源,集群安装后拉取镜像加速用,可以使用其它加速器地址

这里的虚机配置对应的选项: --cpu=2 --memory='2000mb --disk-size='20000m'

preloaded-images-k8s-v1-v1.17.3-docker-overlay2.tar.lz4: https://storage.googleapis.com/minikube-preloaded-volume-tarballs/preloaded-images-k8s-v1-v1.17.3-docker-overlay2.tar.lz4


之后启动可以这样就可以

minikube start --image-mirror-country=cn --registry-mirror=https://registry.docker-cn.com
## or 
minikube start --vm-driver=virtualbox --image-mirror-country=cn --registry-mirror=https://reg-mirror.qiniu.com

minikube start --image-mirror-country='cn' --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers'

minikube start --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers --image-mirror-country=cn --extra-config=kubelet.cgroup-driver=systemd

# 图形化管理界面

minikube dashboard

# 外网访问

minikube dashboard --url
-----
* 正在验证 dashboard 运行情况 ...
* Launching proxy ...
* 正在验证 proxy 运行状况 ...
http://127.0.0.1:40593/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/

开启端口访问

kubectl proxy --port=40593 --address='0.0.0.0' --accept-hosts='^.*' &

访问,假如你的远程ip地址是:192.168.3.10

http://192.168.3.10:40593/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/

# master、node、pod、service、关系

master管理node

node中存放pod

pod是一组(相似的)容器

service去关联 pod ,也就是pod和pod之间沟通的桥梁

# node

# pod

进入一个pod

kubectl exec -it busybox-pod sh

# service

  • 将一个pod暴露到公网IP上

    kubectl expose pods nginx-pod --type=NodePort #metadata.name = nginx-pod
    

    访问:node_Ip:expose_Ip //http://192.168.99.105:30696

# Deployments

更新服务

当前:nginx:1.0

# 创建

kubectl create -f deployment-nginx.yml

# 查看

kubectl get deployment

kubectl get deployment -o wide

升级为:nginx:2.0

kubectl set image deployment nginx-deployment nginx=nginx:2.0

nginx-deploymentdeployment-nginx.yml 文件定义的,不是文件名

回滚:nginx:1.0

kubectl rollout undo deployment nginx-deployemnt

查看历史回滚记录

kubectl rollout history deployment nginx-deployment

# 暴露端口

kubectl expose deployment nginx-deplyment --type=NodePort

# 删除

kubectl delete services nginx-deployment

# K8s网络

# service

# 监控

curl -L git.io/scope -o /usr/local/bin/scope

sudo chmod +x /usr/local/bin/scope

scope launch ip地址