windows k8s 

 - Kubernetes 1.14 이후부터 windows 지원가능
쿠버네티스 1.14 릴리스에는 쿠버네티스 클러스터의 윈도우 노드에서 윈도우 컨테이너 스케줄링을 위한 프로덕션 지원이 포함되어 있음

광범위한 윈도우 애플리케이션 생태계가 쿠버네티스의 강력한 기능을 활용할 수 있다. 윈도우 기반 애플리케이션과 리눅스 기반 애플리케이션에 투자한 조직은 워크로드를 관리하기 위해 별도의 오케스트레이터를 찾을 필요가 없으므로, 운영 체제와 관계없이 배포 전반에 걸쳐 운영 효율성이 향상

쿠버네티스에서 윈도우 컨테이너 오케스트레이션을 활성화하려면, 기존 리눅스 클러스터에 윈도우 노드를 포함하기만 하면 된다. 쿠버네티스의 파드에서 윈도우 컨테이너를 스케줄링하는 것은 리눅스 기반 컨테이너를 스케줄링하는 것만큼 간단하고 쉽다.

윈도우 컨테이너를 실행하려면, 쿠버네티스 클러스터에 리눅스를 실행하는 컨트롤 플레인 노드와 사용자의 워크로드 요구에 따라 윈도우 또는 리눅스를 실행하는 워커가 있는 여러 운영 체제가 포함되어 있어야 한다. 윈도우 서버 2019는 윈도우에서 쿠버네티스 노드를 활성화하는 유일한 윈도우 운영 체제이다(kubelet, 컨테이너 런타임 및 kube-proxy 포함)
ㄴ Master 는 Windows 를 사용하지 못하나, Worker 는 Linux 및 Window 에 상관없이 구성이 가능하다.
ㄴ windows server 2019 가 k8s 에 사용가능한 유일한 windows 서버이다.

https://docs.microsoft.com/ko-kr/windows-server/get-started-19/servicing-channels-19

참고: 마스터 컴포넌트를 포함한 쿠버네티스 컨트롤 플레인은 리눅스에서 계속 실행된다. 윈도우 전용 쿠버네티스 클러스터는 계획이 없다.
참고: 이 문서에서 윈도우 컨테이너에 대해 이야기할 때 프로세스 격리된 윈도우 컨테이너를 의미한다. Hyper-V 격리가 있는 윈도우 컨테이너는 향후 릴리스로 계획되어 있다.

쿠버네티스의 윈도우 운영 체제 지원은 다음 표를 참조한다. 단일 이기종 쿠버네티스 클러스터에는 윈도우 및 리눅스 워커 노드가 모두 있을 수 있다. 윈도우 컨테이너는 윈도우 노드에서, 리눅스 컨테이너는 리눅스 노드에서 스케줄되어야 한다.
ㄴ windows container 는 windows worker node 에, linux container 는 linux worker node 에 스케줄링 되어야함

참고: 윈도우 서버 호스트 운영 체제에는 윈도우 서버 라이선스가 적용된다. 윈도우 컨테이너 이미지에는 윈도우 컨테이너에 대한 추가 사용 조건이 적용된다.

https://docs.microsoft.com/en-us/virtualization/windowscontainers/images-eula
ㄴ windows container image 에 대한 자료

퍼즈(Pause) 이미지
Microsoft는 mcr.microsoft.com/oss/kubernetes/pause:1.4.1에서 윈도우 퍼즈 인프라 컨테이너를 유지한다.

API 및 kubectl의 관점에서, 윈도우 컨테이너는 리눅스 기반 컨테이너와 거의 같은 방식으로 작동한다. 그러나 제한 섹션에 요약된 주요 기능에는 몇 가지 눈에 띄는 차이점이 있다.

##############################
#### 차이점은 따로 정리 필요 ###
##############################
https://kubernetes.io/ko/docs/setup/production-environment/windows/intro-windows-in-kubernetes/#%EC%A0%9C%ED%95%9C


ㅁ 컨테이너 런타임
 - Docker EE
FEATURE STATE: Kubernetes v1.14 [stable]
Docker EE-basic 19.03 이상은 모든 윈도우 서버 버전에 대해 권장되는 컨테이너 런타임이다. 이것은 kubelet에 포함된 dockershim 코드와 함께 작동한다.

 - CRI-ContainerD
FEATURE STATE: Kubernetes v1.20 [stable]
ContainerD 1.4.0+는 윈도우 쿠버네티스 노드의 컨테이너 런타임으로도 사용할 수 있다.

 

 

ㅁ Kubernetes v1.18 [alpha]

kubernetes 1.17 버전에서는 container-d 는 지원하지 않으며, Docker EE-basic 18.09 is required

 


ㅁ Container-D 설치방법
https://kubernetes.io/ko/docs/setup/production-environment/container-runtimes/#containerd-%EC%84%A4%EC%B9%98

주의: ContainerD와 함께 GMSA를 사용하여 커널 패치가 필요한 윈도우 네트워크 공유에 액세스 할 때 알려진 제한이 있다. 이 제한을 해결하기위한 업데이트는 현재 Windows Server, 버전 2004에서 사용할 수 있으며 2021년 초에 Windows Server 2019에서 사용할 수 있다. Microsoft 윈도우 컨테이너 이슈 트래커에서 업데이트를 확인한다.
Container-D 와 GMSA 사용하기위해선 windows server 2019 는 2021년 초에 패치예정
https://kubernetes.io/docs/tasks/configure-pod-container/configure-gmsa/#gmsa-limitations


### 네트워크 정리 표
https://kubernetes.io/ko/docs/setup/production-environment/windows/intro-windows-in-kubernetes/#%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EB%AA%A8%EB%93%9C

### kubeadm ADD windows worker node
https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/adding-windows-nodes/

### Rancher 기준의 windows worker node Requirements
https://rancher.com/docs/rancher/v2.x/en/cluster-provisioning/rke-clusters/windows-clusters/#requirements-for-windows-clusters

### Calico Windows node Requirements
https://docs.projectcalico.org/getting-started/windows-calico/kubernetes/requirements

### Install Calico Windows node
https://docs.projectcalico.org/getting-started/windows-calico/kubernetes/standard

### Kubespray 는 Linux 구성에 대한 부분만 있음
https://github.com/kubernetes-sigs/kubespray

### Sample yaml 구성 예시
https://kubernetes.io/ja/docs/setup/production-environment/windows/user-guide-windows-containers/

### Windows container Archtecture IMAGE
https://docs.microsoft.com/ko-kr/virtualization/windowscontainers/deploy-containers/containerd
https://docs.microsoft.com/en-us/azure-stack/aks-hci/kubernetes-concepts

### Docker EE Licensing
https://docs.mirantis.com/docker-enterprise/v3.0/dockeree-products/licensing.html



### 설치 예제 문서 모음
https://www.mirantis.com/blog/windows-worker-nodes-for-docker-enterprise-kubernetes-easily-add-and-scale-windows-workload-capacity/
https://keyvatech.com/2020/03/26/step-by-step-guide-set-up-a-windows-worker-node-for-kubernetes-cluster/
https://microk8s.io/docs/add-a-windows-worker-node-to-microk8s
https://www.hostafrica.co.za/blog/new-technologies/install-kubernetes-cluster-windows-server-worker-nodes/



### 설치 자동 Powershell scripts
https://www.hostafrica.co.za/blog/new-technologies/install-kubernetes-cluster-windows-server-worker-nodes/
https://github.com/sixeyed/k8s-win/blob/master/setup/win-2019-worker.ps1




### IBM K8S windows node Document
https://www.ibm.com/support/knowledgecenter/en/SSBS6K_3.2.0/manage_cluster/windows_worker.html

+ Recent posts