2021-9-18 Mr Chang
KUBERNETES
节点亲和性影响Pod调度
(1)硬亲和性
约束条件必须满足
(2)软亲和性
尝试满足,不保证
支持常用操作符
In NotIn Exists Gt Lt DoesNotExists
评论(0)
浏览(905)
2021-9-16 Mr Chang
KUBERNETES
容器检查
评论(0)
浏览(1004)
2021-9-16 Mr Chang
KUBERNETES
#pod 资源限制
esources:
requests: #调度大小
memory: "64Mi"
cpu: "250m"
limits: #最大大小
memory: "64Mi"
cpu: "250m"
#pod重启机制
restartPolicy:Never
# Always:当容器终止退出后,总是重启容器,默认策略
# OnFailure:当容器异常退出(退出状态码非0)时,才重启容器。
# Never:当容器终止退出,从不重启容器。
评论(0)
浏览(914)
2021-9-16 Mr Chang
KUBERNETES
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: nginx
image: nginx:1.14
imagePullPolicy: Always
# IfNotPresent:默认值,镜像在宿主机上不存在时才拉取
# Always:每次创建Pod 都会重新拉取一次镜像
# Never: Pod 永远不会主动拉取这个镜像
评论(0)
浏览(1000)
2021-9-16 Mr Chang
KUBERNETES
一 、POD 共享网络
通过pause容器,把其他业务容器加入到Pause容器里面,让所有业务容器在同一个命名空间,可以实现共享网络存储。
二、Pod实现机制,共享存储
pod持久化数据 1-日志数据 2-业务数据
引用了一个数据卷的概念 通过volumn 实现共享存储
评论(0)
浏览(977)
2021-9-9 Mr Chang
KUBERNETES
k8s 集群命令行工具kubectl
1.kubectl最基本语法:kubectl [command] [TYPE] [NAME] [flags]
(1) command :指定要对资源执行的操作 例如 create get describe 和delete
(2) TYPE: 指定资源类型,资源类型时大小写敏感的,开发者能够以单数、复数和缩略的形式。例如:pod、pods、 po
(3)NAME:指定资源的名称,名称也大小写敏感
(4)flags:指定服务器的一些其他信息
2.yam最基本语法
资源清单文件
资源编排
(1)语法格式
* 通过缩进表示层级关系
* 不能使用tab进行缩进,只能使用空格
* 一般开通缩进两个空格
* 字符后缩进一个空格,比如冒号,逗号等后面
* 使用---表示新的yaml文件开始
* 使用#代表注释
(2) yaml 文件组成部分
1 控制器定义
2 被控制组成对象
评论(0)
浏览(980)
2021-9-8 Mr Chang
KUBERNETES
systemctl stop firewalld
systemctl disable firewalld
#永久关闭selinux
sed -i 's/enforcing/disbaled/' /etc/selinux/config
setenforce 0 #临时关闭
#关闭临时分区
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab
#根据规划设置主机名
hostnamectl set-hostname k8snode1
hostnamectl set-hostname k8smaster
hostnamectl set-hostname k8snode2
# 在master添加hosts
cat >> /etc/hosts <<EOF
192.168.110.181 k8smaster
192.168.110.228 k8snode1
EOF
# 将桥接的IPV4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
#生效
sysctl --system
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
yum clean all
yum makecache
#时间同步
yum install chrony -y
timedatectl set-timezone Asia/Shanghai
chronyc -a makestep
3.1 安装DOCKER
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache
yum list docker-ce --showduplicates | sort r
yum -y install docker-ce-3:19.03.15-3.el8 --allowerasing
systemctl enable docker && systemctl start dockersystemctl enable docker && systemctl start docker
docker --version
#修改docker镜像源为阿里云的镜像
cat > /etc/docker/daemon.conf <<EOF
{
"register-mirrors" : [
"https://6mx4nat8.mirror.aliyuncs.com",
]
}
EOF
systemctl restart docker
#添加k8s的yum源
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
yum clean all
yum makecache
#安装kubelet、kubeadm、kubectl
yum list kubeadm --showduplicates | sort -r
yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
#开机自动启动kubelet
systemctl enable kubelet
#部署kubernetes Master
kubeadm init --apiserver-advertise-address=192.168.110.181 --image-repository=registry.aliyuncs.com/google_containers --kubernetes-version=1.18.0 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl get node
#默认token有效期是24小时 过期之后 token就不可用了 这时候需要重新创建token
kubeadm token create --print-join-command
#配置网络插件
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl get nodes
kubectl get pods -n kube-system
#kubernetes集群中创建一个pod 验证是否正常运行:
kubectl create deployment nginx --image
kubectl expose deployment nginx --port=80 --type=NodePort
评论(0)
浏览(990)
2021-9-8 Mr Chang
KUBERNETES
1、搭建k8s环境平台规划
单master集群 node1 node2 node3 -》master
多master集群
2、服务器硬件配置要求
测试环境 master
2核 运行内存4G 硬盘20G
node 4核 8G 40G
生产环境
更高要求
3、搭建k8s集群部署方式
目前生产环境部署主要有两种方式
(1)kudbedm
(2)二进制包
评论(0)
浏览(996)
2021-9-8 Mr Chang
KUBERNETES
1、Pod
最小部署单元
一组容器的集合
共享网络
生命周期的是短暂的
2、controller
确保预期的pod副本数量
部署应用的时候有两种方式:(1)无状态应用部署 (2)有状态应用部署
确保所有的node运行同一个pode
一次性任务和定时任务
3、Service
定义一组pod的访问规则
总体:通过Service统一入口进行访问,通过controller创建pod进行部署
评论(0)
浏览(891)
2021-9-8 Mr Chang
KUBERNETES
一 概述
1.k8s 是谷歌在2014年开业的容器化集群管理系统。
2.使用k8s进行容器化应用部署
3.使用k8s利于应用扩展
4.k8s目标实施让部署容器化应用更加简洁和高效
二 K8S优点:
1.自动装箱 自动部署应用容器
2.自我修复(自愈能力)当容器失败时,会对容器进行重启
3.水平扩展
4.滚动更新
5.版本回滚
6.密钥和配置管理
7.存储编排
8.批处理
三 K8S集群架构组件
包含组成部分 Master(主控节点) node(工作节点)
(1)master 组件
apiserver 集群统一入口,以restful方式,交给etcd存储
scheduler 节点调度,选择node节点应用部署
controller-manager 处理机群中常规后台任务,一个资源对应一个控制器
etcd 存储系统,用于保存集群相关的数据
(2)node组件
kubelet---master派到node节点代表,管理本机容器
kube-proxy---提供网络代理,负载均衡等操作
评论(0)
浏览(985)